簡體   English   中英

errno 150 mySQL外鍵

[英]errno 150 mySQL foreign key

當我嘗試使用UserID上的外鍵創建第二個表時,此SQL給我Errno 150

誰能告訴我我在做什么錯?

CREATE DATABASE IF NOT EXISTS  OTA;
USE OTA;
CREATE TABLE IF NOT EXISTS Users
(
UserID int AUTO_INCREMENT NOT NULL PRIMARY KEY,
UserName varchar(255) NOT NULL,
Email varchar(255) UNIQUE ,
PW varchar(255),
PN varchar(255),
Admin BIT
);


CREATE TABLE IF NOT EXISTS Notes
(
UID int AUTO_INCREMENT NOT NULL PRIMARY KEY,
Note varchar (255) NOT NULL,
c_Date Date NOT NULL,
c_text varchar (255) NOT NULL,
FOREIGN KEY (UID) REFERENCES Persons(UserID)
);

對不起,我是一個重復的問題,但我找不到相關問題之間的答案。

問題是,當您的第一個表稱為Users時,您正在嘗試引用Persons(UserID) 試試這個作為您的密鑰:

FOREIGN KEY (UID) REFERENCES Users(UserID)

但是,您應該在注釋ID的單獨一列。

在以下情況下嘗試聲明主鍵:

CREATE TABLE Orders
(O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id))

另外,您會自動增加UID和UserID。 如果它們的長度相同,這很好,但是如果您嘗試引用不存在的外鍵值,則會出現錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM