mysql不能建外來鍵,Mysql無法建立外來鍵約束

2022-07-19 23:25:40 字數 1744 閱讀 9832

1樓:匿名使用者

index_table是聯合主鍵,

建外來鍵的時候確是單列,這樣是不行的。

外來鍵必須和主表的主鍵列資料型別和順序一致

2樓:匿名使用者

create database if not exists wcfa;

use wcfa;

create table if not exists index_table(

tw nvarchar(50) auto_increment primary key,

fid varchar(10) not null,

);create table if not exists file_table(

fid varchar(10) auto_increment primary key,

filename varchar(50) not null,

constraint fidref foreign key (fid) references index_table(fid),

);你看這樣行不行!!

mysql無法建立外來鍵約束

3樓:匿名使用者

1.新增外來鍵報錯,外來鍵無法建立無非這幾種可能(一)確定外來鍵上建立了索引,否則無法建立約束;

(二) 外來鍵的引用型別和主表列型別不一致,比如主鍵是number的,外來鍵是varchar2的;

(三)確定引用的主表列存在;

2.建表報錯上提示此表已存在哦,drop之後再建表。

4樓:匿名使用者

贊同樓上的,樓上的人大神哇

怎樣用sql語句在mysql中建立外來鍵約束關係

5樓:叄肆貳貳零壹

alter table table_name add constraint fk_column_id foreign key(column) references 主鍵表 (column_id);

6樓:匿名使用者

應該是這樣子的,

alter table 表名

add foreign key (外來鍵屬性) references 表名(表屬性)

7樓:黃山

給你個建立了外間約束的例子

看下,這個是我寫的,欄位多了些,不影響

create table if not exists entity(id int auto_increment primary key, hostname char(255), hostip char(32), type int, caption char(255), index (id)) engine=innodb character set utf8 collate utf8_general_ci

create table if not exists hvhost(en_id int, username char(255), password char(255), memory_size bigint, cpu_count int, cpu_frequency bigint, power_state char(16), time char(64), foreign key(en_id) references entity(id) on delete cascade on update cascade) engine=innodb character set utf8 collate utf8_general_ci

mysql錯誤翻譯為不能新增外來鍵約束求解啊

資料型別不一致。你的主表,id 的資料型別是 int unsigned 而你的子表,hoyyb id 資料型別是 int 因為 int m unsigned zerofill 普通大小的整數。帶符號的範圍是 2147483648到2147483647。無符號的範圍是0到4294967295。2種解決...

MySQL中建表不能使用中文欄位嗎

你選擇的編碼方式不對,選擇gb2312,gbk,或utf 8 為了效率和相容性 還是用英文吧 如何利用 mybatis generator生成帶有中文欄位名註釋的bean 想必在利用mybatis generator生成 之後,相比看著一堆雞肋的註釋很多人都和我一樣很糾結,明明資料庫中欄位有註釋,為...

mySql資料庫中用頁面不能插入中文,顯示為?號,請問什麼問題,怎麼解決

編碼問題,因為你從介面獲取的資料 是你本地瀏覽器的編碼,在伺服器端可能用的不是這個編碼 所以在資料傳遞到伺服器的時候 將request.request.setcharacterencoding utf 8 解碼一下 亂碼唄.方法一,命令修改 進入cmd,進入mysql 用show variables...