创建表,SQL。基本的东西

时间:2013-01-30 04:28:35

标签: mysql sql database database-table

所以我在创建表时遇到了一个小问题。问题在于我尝试为另一个表创建外键。我目前正在使用MYSQL2008管理R2快递,所以没有设计师。继承我的两张桌子

use teckDB;

CREATE TABLE inventory
(
  primId int NOT NULL PRIMARY KEY,
  prodName VarChar(255),
  quantity int,
  prodCost MONEY,
  prodDesc VARCHAR(255)   
);

CREATE TABLE orderTB
(
 primId INT NOT NULL PRIMARY KEY,
 orderId INT NOT NULL,
 created date,
 prodId INT,
);

这两个表没有问题。但是,当创建thrid时,会导致出现此错误消息。

  

Msg 1769,Level 16,State 1,Line 3外键'orderTB'引用   引用表'CustomerTB'中的列'orderTB'无效。消息1750,   等级16,状态0,行3无法创建约束。见前   错误。

在......的第三张桌子上。

CREATE TABLE CustomerTB
(
 primId INT NOT NULL  PRIMARY KEY,
 orderId INT, FOREIGN KEY (orderTB) REFERENCES orderTB(orderId),
 fName VARCHAR(50),
 lName VARCHAR(50),
 addLN1 VARCHAR(255),
 addLN2 VARCHAR(255),
 addCity VARCHAR(255),
 addPro VARCHAR(255),
 addPST VARCHAR(7)
 );

3 个答案:

答案 0 :(得分:0)

试试这个

FOREIGN KEY (iparent_id) REFERENCES innodb_parent (iparent_id)

答案 1 :(得分:0)

答案 2 :(得分:0)

在" orderId INT"之后你有一个额外的逗号,你的外键语法错误。

这应该有效:

CREATE TABLE CustomerTB
(
  primId INT NOT NULL  PRIMARY KEY,
  orderId INT REFERENCES orderTB(orderId),
  fName VARCHAR(50),
  lName VARCHAR(50),
  addLN1 VARCHAR(255),
  addLN2 VARCHAR(255),
  addCity VARCHAR(255),
  addPro VARCHAR(255),
  addPST VARCHAR(7)
);

SQLFiddle here

上测试