首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在单个MySQL语句中添加列并使其成为外键?

问如何在单个MySQL语句中添加列并使其成为外键?
EN

Stack Overflow用户
提问于 2009-10-09 18:04:53
回答 4查看 121K关注 0票数 109

在mysql中,我可以在同一语句中添加列和外键吗?添加fk的正确语法是什么?

以下是我的SQL:

代码语言:javascript
复制
ALTER TABLE database.table
 ADD COLUMN columnname INT DEFAULT(1),
 FOREIGN KEY (fk_name) REFERENCES reftable(refcolumn) ON DELETE CASCADE;

...and附带的错误消息:

您的SQL语法出现了错误;请检查与MySQL服务器版本对应的手册,以便在第4行

中使用接近“外键(fk_name)引用--可在删除级联上使用”的正确语法。

EN

回答 4

Stack Overflow用户

发布于 2009-10-09 18:06:21

试试这个:

代码语言:javascript
复制
ALTER TABLE database.table
  ADD COLUMN columnname INT DEFAULT(1),
  ADD FOREIGN KEY fk_name(fk_column) REFERENCES reftable(refcolumn) ON DELETE CASCADE;
票数 123
EN

Stack Overflow用户

发布于 2013-12-24 09:40:55

下面的查询通过alter添加一列,约束查询使其成为单个mysql查询中的FK。你可以这样做,

语法:

代码语言:javascript
复制
ALTER TABLE `SCHEMANAME`.`TABLE1` 
ADD COLUMN `FK_COLUMN` BIGINT(20) NOT NULL, 
ADD CONSTRAINT `FK_TABLE2_COLUMN` FOREIGN KEY (`FK_COLUMN`) 
REFERENCES `SCHEMANAME`.`TABLE2`(`PK_COLUMN`);

示例:

代码语言:javascript
复制
ALTER TABLE `USERDB`.`ADDRESS_TABLE` 
ADD COLUMN `USER_ID` BIGINT(20) NOT NULL AFTER `PHONE_NUMBER`, 
ADD CONSTRAINT `FK_CUSTOMER_TABLE_CUSTOMER_ID` FOREIGN KEY (`USER_ID`) 
REFERENCES `USERDB`.`CUSTOMER_TABLE`(`CUSTOMER_ID`); 
票数 51
EN

Stack Overflow用户

发布于 2019-06-26 10:45:34

这可以简化一点。您只需在“外键”之前添加" add“关键字即可。在下面添加示例。

代码语言:javascript
复制
ALTER TABLE database.table
ADD COLUMN columnname INT DEFAULT(1),
ADD FOREIGN KEY (fk_name) REFERENCES reftable(refcolumn) ON DELETE CASCADE;
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1545253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档