建立表不支援主外來鍵,能夠新增外來鍵成功,但是無法外來鍵約束。查資料發現mysql的預設engine 為myisam ,不支援外來鍵,需要修改為 innodb
修改前:
1create
table23
create
table
`person` (
4 `id` varchar(32) not
null
,5 `name` varchar(30) default
null,6
primary
key(`id`)
7 ) engine=innodb default charset=gbk
在建立表時把engine 修改為 innodb
createtable
person
( id
varchar(32) primary
key,
name
varchar(30
))engine
=innodb default charset=
gbk
create
table
cars
( id
varchar(32) primary
key,
name
varchar(50
), price numeric(
5,2),
pid
varchar(32
),
constraint c_fk foreign
key(pid) references
person(id)
)engine
=innodb charset=
gbk;
這樣就支援外來鍵了
一勞永逸的方法:
修改my.ini,在[mysqld]新增
default-storage-engine=innodb
修改mysql預設編碼:
[mysqld]
default-character-set = utf8
[client]
default-character-set = utf8
mysql主外來鍵
自己的 總提示 error 1005 can t create table errno 150 的錯誤鬱悶了好幾天,看了下面的文章終於成功了,犯了下面提到的三情況中的第三種,太不細心了,居然忽略了 unsigned 大家也要多留意呀!參照完整性 referentialintegrity 是資料庫設計...
MySQL主外來鍵講解
主鍵 是唯一標識一條記錄,不能有重複的,不允許為空,用來保證資料完整性 外來鍵 是另一表的主鍵,外來鍵可以有重複的 可以是空值,用來和其他表建立聯絡用的。所以說,如果談到了外來鍵,一定是至少涉及到兩張表。例如下面這兩張表 上面有兩張表 部門表 dept 員工表 emp id dept id 而dep...
mysql主外來鍵問題
1052 cannot add foreign key constraint 錯誤解決辦法 產生這個錯誤的多數原因有一下幾點 1,兩張表裡要設主鍵和外來鍵的欄位的資料型別或者資料長度不一樣 例如這個是int 另外一個是tinyint,或者都是int,但是設定的長度不同 2,某個表裡已經有記錄了 3 ...