sql - MYSQL Create table + Alter table 语法错误?

标签 sql mysql foreign-keys create-table

我试图在 Navicat 中创建一个表,然后立即添加一个外键关系。然而,语法似乎不正确......这甚至可能吗?

    CREATE TABLE `Bld` (
      `id` int(10) NOT NULL
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    ALTER TABLE `Bld` (
        CONSTRAINT `fk_Bld_Bld_Ref` FOREIGN KEY (`id`) REFERENCES `Bld_Ref` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
    );

最佳答案

你少了一个逗号:

CREATE TABLE `Bld` (
  `id` int(10) NOT NULL, -- <- there
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

关于sql - MYSQL Create table + Alter table 语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1525043/

相关文章:

mysql - 检查一列的值是否包含另一列的值

php - 如何以降序重新排序整个sql语句?

sql - 什么时候应该使用指向候选键而不是主键的外键的例子?

java - 如何在java中编写查询以使用MySql插入带有外键的数据

mysql - MySQL中Unix时间戳范围查询

sql - 如何在oracle中打印游标值?

php - 具有相同日期的 Datediff 之和

mysql - 如何使用参数匹配两个表时从第一个表获取空行

python - Django,选择查询集覆盖值

ruby - activerecord 迁移中的外键与 schema.rb