Mysql
 sql >> Datenbank >  >> RDS >> Mysql

auf Auto-Increment-Spalten verweisen?

Sie müssen in den abhängigen Tabellen eine INT-Spalte mit dem Namen "parent_id" erstellen, in der die ID der Haupttabelle gespeichert ist, auf die sie verweist. Wenn Sie Datensätze aus dem ersten auswählen, würden Sie dann die Tabellen mit dem auto_increment-Feld des ersten Felds mit der "parent_id" des zweiten Felds JOIN.

Verwenden Sie, wie MrSlayer erwähnt, die neu eingefügte ID der ersten Tabelle, um "parent_id" zu aktualisieren. Sie sollten normalerweise ein eindeutiges ID-Feld in der zweiten Tabelle zur Eindeutigkeit haben, aber es sollte nicht Teil der Beziehung zur ersten Tabelle sein.

Wenn Sie sich nicht sicher sind, wie Sie die ID erhalten, auf die die erste Tabelle beim Einfügen auto_inkrementiert, verwenden Sie mysql_insert_id() .

mysql_query("INSERT INTO table1 ...");
echo "Last inserted record_id in table1 was " .  mysql_insert_id();

INSERT INTO table1 (mytextcolumn) VALUES('text');
INSERT INTO table2 (parent_id,image_name) VALUES(LAST_INSERT_ID(),'someimage.png');