【问题标题】:Error in SQL Syntax when creating simple foreign key reference创建简单外键引用时 SQL 语法错误
【发布时间】:2012-09-10 19:55:48
【问题描述】:

这是我的脚本:

create table Country
(
CountryId int primary key,
Name varchar(255)
);

create table Person
(
PersonId int primary key,
Name varchar(255),
FOREIGN KEY (CountryId) references Country(CountryId)
);

我正在从 MS SQL 过渡,并试图掌握 MySQL,并从我典型的 Person->Country 关系的 hello world 开始,以了解外键。

我在 PHPMyAdmin 上收到此错误:

SQL 查询:

创建表人(

PersonId INT PRIMARY KEY , Name VARCHAR( 255 ) , FOREIGN KEY ( CountryId ) REFERENCES Country( CountryId ) );

MySQL 说:

1072 - 表中不存在键列“CountryId”

我在这里犯了什么新手错误?

【问题讨论】:

  • 我回答后你改了问题!新错误是由于您的第二个表没有“CountryId”字段。
  • @MattHumphrey:所以我必须在另一行明确声明该字段?

标签: mysql sql foreign-keys ddl


【解决方案1】:

这是因为您没有在 Person 中创建将在外键中使用的列,因此,Key column 'CountryId' doesn't exist in table。以下是你的做法:

CREATE TABLE Person(
    PersonId INT PRIMARY KEY , 
    Name VARCHAR( 255 ) , 
    CountryId int,
    FOREIGN KEY ( CountryId ) REFERENCES Country( CountryId )
);

【讨论】:

猜你喜欢
  • 2018-09-12
  • 1970-01-01
  • 2013-05-21
  • 1970-01-01
  • 2021-10-09
  • 1970-01-01
  • 2018-03-13
  • 1970-01-01
  • 2015-04-07
相关资源
最近更新 更多