mysql建表外键_MYSQL建表外键约束的问题

你的位置:

问答吧

-> MySQL

-> 问题详情

MYSQL建表外键约束的问题

CREATE TABLE `admins_roles` (

`adminId` varchar(20) NOT NULL,

`roleId` int(11) NOT NULL,

PRIMARY KEY (`adminId`,`roleId`),

KEY `FKEF02020E4DA6F3F2` (`roleId`),

KEY `FKEF02020ED043BDEE` (`adminId`),

CONSTRAINT `FKEF02020E4DA6F3F2` FOREIGN KEY (`roleId`) REFERENCES `role` (`id`),

CONSTRAINT `FKEF02020ED043BDEE` FOREIGN KEY (`adminId`) REFERENCES `admin` (`id`),

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

/*!40101 SET character_set_client = @saved_cs_client */;

FKEF02020E4DA6F3F2 这是什么意思?

自己随便写的还是生成的?

如果不写的话建表是错误的

但是不加CONSTRAINT的约束的话,用建模的工具看没有关联关系。

作者: lequery

发布时间: 2010-09-29

引用FKEF02020E4DA6F3F2 这是什么意思?

查一下MYSQL手册中的语法就明白了。 这个是CONSTRAINT的名称

[CONSTRAINT [symbol]] FOREIGN KEY

[index_name] (index_col_name,...) reference_definition

引用自己随便写的还是生成的?

自行决定,可写可不写,不写则由系统自动命名。

作者: ACMAIN_CHM

发布时间: 2010-09-29

引用如果不写的话建表是错误的

估计你没写对。

SQL code

mysql>CREATETABLE`tx` (->`id`int(11)NOTNULL,->`c1`int(11)DEFAULTNULL,->`c2`int(11)DEFAULTNULL,->`c3`int(11)DEFAULTNULL,->PRIMARYKEY(`id`),->CONSTRAINTFOREIGNKEY(`c2`)REFERENCES`t2` (`id`)->) ENGINE=InnoDB ;

Query OK,0rows affected (0.11sec)

mysql>showcreatetabletx;+-------+----------------------------------------------------------------|Table|CreateTable+-------+----------------------------------------------------------------|tx|CREATETABLE`tx` (

`id`int(11)NOTNULL,

`c1`int(11)DEFAULTNULL,

`c2`int(11)DEFAULTNULL,

`c3`int(11)DEFAULTNULL,PRIMARYKEY(`id`),KEY`c2` (`c2`),CONSTRAINT`tx_ibfk_1`FOREIGNKEY(`c2`)REFERENCES`t2` (`id`)

) ENGINE=InnoDBDEFAULTCHARSET=latin1|+-------+----------------------------------------------------------------1rowinset(0.00sec)

mysql>

作者: ACMAIN_CHM

发布时间: 2010-09-29

约束名,自己写的

可以不用,系统自行生成

多了1个,

CREATE TABLE `admins_roles` (

`adminId` varchar(20) NOT NULL,

`roleId` int(11) NOT NULL,

PRIMARY KEY (`adminId`,`roleId`),

KEY `FKEF02020E4DA6F3F2` (`roleId`),

KEY `FKEF02020ED043BDEE` (`adminId`),

FOREIGN KEY (`roleId`) REFERENCES `role` (`id`),

FOREIGN KEY (`adminId`) REFERENCES `admin` (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

作者: WWWWA

发布时间: 2010-09-29

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL中创建外键有多种方法。一种常见的方法是在表的定义中直接添加外键约束。可以使用以下语法来创建外键: ALTER TABLE 子表表名 ADD CONSTRAINT 外键约束名 FOREIGN KEY (子表外键字段名) REFERENCES 主表表名 (主表主键字段名); 例如,如果我们要创建一个名为table_test的表,其中包含一个名为user_id的外键字段,引用了另一个表的user_id字段作为主键,可以使用以下语句创建外键约束: ALTER TABLE table_test ADD CONSTRAINT FK_user_id FOREIGN KEY (user_id) REFERENCES 另一个表名 (user_id); 另外一种方法是在创建表的时候直接在表字段后面加上PRIMARY KEY关键字,这样会同时创建一个主键和外键约束。例如,可以使用以下语句创建一个带有主键和外键约束的表: CREATE TABLE table_name ( id INT PRIMARY KEY, foreign_key INT, FOREIGN KEY (foreign_key) REFERENCES 另一个表名 (另一个表的主键字段名) ); 请根据具体的需求选择适合的方法来创建外键。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【mysql】给一张表添加外键的四种方法](https://blog.csdn.net/weixin_43431218/article/details/129167709)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值