Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да вмъкнете данни в множество таблици с включени зависимости от външен ключ (MySQL)

Накратко, искате да използвате транзакции (още документ за това) така че вашите вложки да са атомни . Това е единственият начин да гарантирате, че всички (или нито една) от вашите данни ще бъдат вмъкнати. В противен случай можете да влезете в ситуацията, която описвате, когато базата данни става недостъпна след някои вмъквания, а други не могат да завършат. Транзакцията казва на базата данни, че това, което правите, е всичко или нищо и затова трябва да се върне, ако нещо се обърка.

Когато използвате синтетични първични ключове, каквито сте, PHP и други езици предоставят механизми за получаване на последния вмъкнат идентификатор. Ако искате да го направите изцяло в MySQL, можете да използвате LAST_INSERT_ID() функция. В крайна сметка ще получите код като този:

START TRANSACTION;
INSERT INTO foo (auto,text)
    VALUES(NULL,'text');         # generate ID by inserting NULL
INSERT INTO foo2 (id,text)
    VALUES(LAST_INSERT_ID(),'text');  # use ID in second table
COMMIT;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да получа достъп до инструмента на командния ред mysql, когато използвам XAMPP в OS X?

  2. mysql.sock не е създаден OSX

  3. MySQL Заявка за вложен избор?

  4. Условно броене на Mysql

  5. Използвайте MySQL релационни бази данни в Ubuntu 10.04 LTS (Lucid)