0

我的 MySQL 查询如下 -

CREATE TABLE city
{
    city_id INT AUTO_INCREMENT NOT NULL,
    city_name VARCHAR(50) NOT NULL,
    state_id int(50) NOT NULL,
    PRIMARY KEY (city_id), 
    FOREIGN KEY(state_id) REFERENCES state(state_id) ON DELETE CASCADE ON UPDATE CASCADE 
}

什么可能是可能的错误,因为我不是创建表的表'city'

表的结构非常简单

第一个名为 state 的表

state_id | state_name   

另一个名为 city 的表

city_id city_name state_id    

由于数据库表很容易看到我想保持对表城市 state_id的引用到表状态 state_id

我仍然是初学者,但我认为我编写的代码应该可以工作,但不是吗?为什么?有什么建议吗?

4

3 回答 3

3

你用错了牙套...

CREATE TABLE city ( city_id INT AUTO_INCREMENT NOT NULL, city_name VARCHAR(50) NOT NULL, state_id int(50) NOT NULL, PRIMARY KEY (city_id), FOREIGN KEY(state_id) REFERENCES state(state_id) ON DELETE CASCADE ON UPDATE CASCADE )
于 2013-06-05T13:40:10.613 回答
2

这是因为您使用的是大括号{}而不是圆括号()

CREATE TABLE city
(
     city_id INT AUTO_INCREMENT NOT NULL,
     city_name VARCHAR(50) NOT NULL,
     state_id int(50) NOT NULL,
     PRIMARY KEY (city_id), 
     FOREIGN KEY(state_id) REFERENCES state(state_id) ON DELETE CASCADE ON UPDATE CASCADE 
)
于 2013-06-05T13:40:19.650 回答
1

您可以看到您缺少 mysql 的基本知识,不要{}在 sql 查询中使用,并在此处将其替换()为上述答案中的建议

有一些关于PRIMARY KEY的参考 去这个链接 和文档请去MYSQL PRIMARY KEY

你可以有一些基本的FOREIGN KEY或参考访问这里和文档请转到MYSQL FOREIGN KEY

于 2013-06-05T16:04:28.223 回答