sql >> Database teknologi >  >> RDS >> Mysql

Kan jeg i MySQL udskyde kontrol af referenceintegritet, indtil commit

Det ser ud til, at mit svar er her ...

Ligesom MySQL generelt, i en SQL-sætning, der indsætter, sletter eller opdaterer mange rækker, kontrollerer InnoDB UNIQUE og FOREIGN KEY-begrænsninger række for række. Når du udfører kontrol af fremmednøgler, sætter InnoDB delte rækkeniveaulåse på under- eller overordnede poster, den skal se på. InnoDB kontrollerer begrænsninger for fremmednøgle med det samme; checken udskydes ikke til transaktionsbekræftelse. Ifølge SQL-standarden skal standardadfærden udskydes kontrol. Det vil sige, at begrænsninger kun kontrolleres, efter at hele SQL-sætningen er blevet behandlet. Indtil InnoDB implementerer udskudt kontrol af begrænsninger, vil nogle ting være umulige, såsom at slette en post, der refererer til sig selv ved hjælp af en fremmednøgle.

Tilbage til tegnebrættet.



  1. PostgreSQL er verdens bedste database

  2. MySQL-forespørgsel - Registrerer mellem i dag og sidste 30 dage

  3. DBConcurrency-undtagelse opstod under opdatering ved hjælp af dataadapter

  4. R DBI ODBC-fejl:nanodbc/nanodbc.cpp:3110:07009:[Microsoft][ODBC-driver 13 til SQL Server]Ugyldigt deskriptorindeks