0

そのため、テーブルの作成に小さな問題があります。問題は、別のテーブルへの外部キーを作成しようとしているところにあります。現在、MYSQL2008 Management R2 Express を使用しているため、デザイナーはいません。これが私の2つのテーブルです

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,
);

これら 2 つのテーブルは問題なく実行されました。ただし、3 番目のものを作成すると、このエラー メッセージが表示されます。

メッセージ 1769、レベル 16、状態 1、行 3 外部キー 'orderTB' は、参照テーブル 'CustomerTB' で無効な列 'orderTB' を参照しています。メッセージ 1750、レベル 16、状態 0、行 3 制約を作成できませんでした。以前のエラーを参照してください。

の 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)
 );
4

3 に答える 3

0

これを試して

FOREIGN KEY (iparent_id) REFERENCES innodb_parent (iparent_id)
于 2013-01-30T04:33:13.603 に答える
0

これはあなたの質問を解決するのに役立つはずだと思います

http://blog.sqlauthority.com/2008/09/08/sql-server-%E2%80%93-2008-creating-primary-key-foreign-key-and-default-constraint/

于 2013-01-30T04:34:01.137 に答える
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でテストされました

于 2014-06-17T12:05:19.597 に答える