【问题标题】:MySql table with Foreign key带有外键的 MySql 表
【发布时间】:2014-04-25 10:42:13
【问题描述】:

我无法为 invoice_2 表设置主键,因为它给出了错误 这是我的代码。 invoice_1 是另一个包含 invoice_2 表的外键的表

CREATE TABLE invoice_2 ( itemID VARCHAR(20) PRIMARY KEY , invoiceNumber INT,FOREIGN KEY REFERENCES invoice_1.invoiceNumber, quantity INT, sellingPrice REAL, lineTotal REAL )

【问题讨论】:

  • 需要帮助:)
  • 多人投反对票
  • 手册中记录了正确的语法。

标签: mysql foreign-keys


【解决方案1】:

试试下面的语法:

CREATE TABLE invoice_2
( 
itemID VARCHAR(20),
invoiceNumber INT,
quantity INT, 
sellingPrice REAL,
lineTotal REAL,
PRIMARY KEY (itemID),
CONSTRAINT `FK_invoiceNumber` FOREIGN KEY (`invoiceNumber`) REFERENCES `invoice_1` (`invoiceNumber`)
 );

【讨论】:

  • 你在这里提到的 FK_invoiceNumber 是什么?
  • 这只是外键名,如果不想可以跳过,但这种做法很好区分我用作标准 FK_Child_table_Name_ColumnName 但这里只有 FK_ColName 的不同外键...
【解决方案2】:

看看mysql创建表和设置PK的语法

CREATE TABLE table_name ( column1 column_definition, column2 column_definition, ... CONSTRAINT [constraint_name] PRIMARY KEY [ USING BTREE | HASH ] (column1, column2, ... column_n));

TRY:添加 pk 约束 CREATE TABLE invoice_2( itemID VARCHAR(20), invoiceNumber INT,FOREIGN KEY REFERENCES invoice_1.invoiceNumber, quantity INT, sellingPrice REAL, lineTotal REAL CONSTRAINT itemID PRIMARY KEY (itemID) );

【讨论】:

  • 抱歉打错了,这是约束的名称。
  • 您的 SQL 语法有误;检查与您的 MySQL 服务器版本相对应的手册,以在第 4 行的“references invoice_1.invoiceNumber, quantity int, sellPrice real, lineTo”附近使用正确的语法
  • @Zafar malik 看到答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-20
  • 2016-08-18
  • 1970-01-01
相关资源
最近更新 更多