【问题标题】:Add column with FK to an existing table in MySQL 5.6将带有 FK 的列添加到 MySQL 5.6 中的现有表中
【发布时间】:2015-08-19 15:09:41
【问题描述】:

大家好。希望有人可以在我的实验中帮助我。

我有一个简单的表格来满足我的需要,里面甚至还有一些数据。

CREATE TABLE IF NOT exists main.test (
ID INT(11) NOT NULL, 
NAME varchar(30) NOT NULL, 
DATE_CREATED timestamp NOT NULL, 
PRIMARY KEY (ID));

但是我应该通过添加列 FK_ 来更新此表。

如何检查表是否已经有字段 FK_? 如果这样的列不存在,请执行以下操作:

ALTER TABLE main.test
ADD COLUMN FK INT(11),
ADD FOREIGN KEY (FK)
REFERENCES test2(ID_test2)

【问题讨论】:

  • 是要创建外键约束还是添加列?确定要添加列吗?
  • 请查看Answer 我刚刚为一个认为动态添加列是他真正想做的事情的人写了一篇文章。在他的情况下,事实并非如此。可能不是你的问题。祝你好运 !欢迎来到堆栈
  • @Drew Greate 谢谢!是的,我需要添加新列并将其设置为 FK。然后,可能,我需要用 fk 添加一列并将数据更新到新结构。

标签: mysql if-statement alter


【解决方案1】:

当我使用 java 时,我的问题决定是使用 ResultSet。

ResultSet set = statement.executeQuery(query);
set.next();
int result = set.getInt(1); //it always return only one row
set.close();

这是我的 sql 查询:

SELECT COUNT(COLUMN_NAME) FROM information_schema.COLUMNS
WHERE
TABLE_SCHEMA = 'main'
AND TABLE_NAME = 'test'
AND COLUMN_NAME = 'FK";

当我得到结果时,我可以决定应该使用什么查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-22
    • 2019-03-24
    • 2023-04-07
    • 2018-03-25
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多