AUTO_INCREMENT kann aufgrund eines Fremdschlüssels nicht zur vorhandenen Spalte hinzugefügt werden

8

Ich habe eine Primärschlüsselspalte mit einigen externen Fremdschlüsselreferenzen. Sehr üblich. Ich habe vergessen, AUTO_INCREMENT dafür hinzuzufügen. Jetzt führe ich

aus

ALTER TABLE chat.users CHANGE COLUMN user_id user_id INT(11) NOT NULL AUTO_INCREMENT ;

(PRIMÄRSCHLÜSSEL wurde separat definiert)

es sagt etwas über fk ERROR 1833: Cannot change column 'user_id': used in a foreign key constraint 'fk_chats_users' of table 'chat.chats'

Ich kann nicht herausfinden, warum fk etwas an der Referenz AUTO_INCREMENT interessiert.

    
user3537411 26.03.2015, 13:59
quelle

2 Antworten

2

Der Grund, warum der FK sich über Ihre Änderungen aufregt, ist, dass Sie ihn ändern wollen und in einer Einschränkung verwendet werden. Denken Sie daran, dass Sie den Datentyp ändern können.

Wenn Sie also die Änderung an der FK vornehmen möchten, überprüfen Sie diese Antwort (denken Sie daran, die Tabellen vorher zu sperren, wenn Sie die Änderung in einer Produktionsumgebung vornehmen).

    
Leandro Carracedo 26.03.2015, 14:14
quelle
-1
  

(PRIMÄRSCHLÜSSEL wurde separat definiert)

Wenn Sie in Ihrer Spalte einen Primärschlüssel definiert haben, dann brauchen Sie Ihre Spalte nicht zu ändern und auto_increment hinzuzufügen. Primärschlüssel werden standardmäßig automatisch inkrementiert.

Wenn Sie jedoch die Funktion auto_increment darauf einstellen möchten, versuchen Sie Folgendes:

%Vor%     
Rahul Tripathi 26.03.2015 14:04
quelle