2010-07-29 57 views
2

添加外鍵表試圖做到這一點的時候,我得到錯誤1452測試。,CONSTRAINT#sql-1110_2_ibfk_1 FOREIGN KEY(用戶名)REFERENCES用戶(用戶名)))。引用鍵和引用鍵是相同類型(VARCHAR)。問題與MySQL的

我SHOW CREATE TABLE輸出:

CREATE TABLE `users` (
    `username` varchar(45) NOT NULL, 
    `password` varchar(45) DEFAULT NULL, 
    `ime` varchar(45) DEFAULT NULL, 
    `priimek` varchar(45) DEFAULT NULL, 
    `nacinp` varchar(45) DEFAULT NULL, 
    `email` varchar(45) DEFAULT NULL, 
    PRIMARY KEY (`username`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 

CREATE TABLE `potovanja` (
    `idpotovanja` int(11) NOT NULL AUTO_INCREMENT, 
    `od` varchar(45) DEFAULT NULL, 
    `do` varchar(45) DEFAULT NULL, 
    `datumvstopa` varchar(45) DEFAULT NULL, 
    `username` varchar(45) DEFAULT NULL, 
    `cena` varchar(45) DEFAULT NULL, 
    `datumizstopa` varchar(45) DEFAULT NULL, 
    PRIMARY KEY (`idpotovanja`), 
    KEY `usr_ind` (`username`) 
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 

我真的不知道該怎麼做。

回答

0

檢查potovanja中的所有用戶名是否存在於users表中。你可能有一些potovanja,在用戶

像這樣的事情會做不復存在......

select * from potovanja p where not exists 
    (select * from users where users.username = p.username) 
+0

Tnx也適合你。 – DixieFlatline 2010-07-29 14:14:18

+0

沒問題,很高興幫助! – 2010-07-29 15:17:53

0

看來users表中似乎沒有行,但表中有一些在potovanja表中。這意味着potovanja中的行在users中沒有任何可引用的內容。

+0

你是對的,就像克里斯。 Tnx – DixieFlatline 2010-07-29 14:14:50