2017-06-20 105 views
1

1215 - 不能添加

phpMyAdmin是給我這個錯誤外鍵約束,每當我試圖執行下面的腳本:如何在MySQL中創建一個複合自引用外鍵?

這是自參照,所以它不應該有任何與它的類型和語法似乎是正確的,給予其他例子在stackoverflow和MySQL的文檔。

不確定它是否有幫助,但是代碼是由MySQL Workbench生成的遷移腳本:從Microsoft SQL遷移到MySQL。

有沒有人有任何線索可能會導致此錯誤?

CREATE TABLE IF NOT EXISTS `clinicalTrialEmployee` (
    clinicalTrialId INT NOT NULL, 
    employeeId INT NOT NULL, 
    clinicalTrialEmployeeTypeId INT NULL, 
    roleName VARCHAR(50) CHARACTER SET 'utf8' NULL, 
    PRIMARY KEY (clinicalTrialId, employeeId), 
    CONSTRAINT FK_clinicalTrialEmployee_clinicalTrialEmployee 
    FOREIGN KEY (clinicalTrialId , employeeId) 
    REFERENCES clinicalTrialEmployee (clinicalTrialId , employeeId) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION); 

回答

0

什麼是世界上它甚至意味着一個領域引用自己?這對我來說是新的。我在一張桌子上有一列是另一列的外鍵,但我從來沒有聽說過一個引用自己的列。你知道這種外鍵約束應該完成嗎?我的意思是毫不誇張地說:這個實際點是什麼?最有可能的答案是MySQL不支持這一點。 SQL的不同「方言」之間有很多不同,只是因爲從Microsoft SQL SQL服務器導出創建此SQL並不意味着MySQL支持語法的原則一般。

其他人可能會提供更多信息,但與此同時我不會嘗試按照原樣重現。我想知道它實際上應該完成什麼,弄清楚它是否仍然很重要,然後找到一種方法在MySQL中進行等價(如果甚至可能的話)。