MySql不支援主外來鍵

2023-01-22 11:10:54 字數 1158 閱讀 6709

建立表不支援主外來鍵,能夠新增外來鍵成功,但是無法外來鍵約束。查資料發現mysql的預設engine 為myisam  ,不支援外來鍵,需要修改為 innodb

修改前:

1

create

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

create

table

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 ...