MySQL :: 1.7.3.1 Omezení PRIMARY KEY a UNIQUE indexu
1.7.3.1 Omezení PRIMÁRNÍHO KLÍČE a UNIKÁTNÍHO indexu
Obvykle dochází k chybám u příkazů změny dat (například INSERT
nebo UPDATE
), které by porušovaly omezení primárního klíče, jedinečného klíče nebo cizího klíče. Pokud používáte transakční úložný stroj, například InnoDB
, MySQL automaticky vrátí příkaz zpět. Pokud používáte netransakční úložný engine, MySQL zastaví zpracování příkazu u řádku, u kterého došlo k chybě, a všechny zbývající řádky ponechá nezpracované.
MySQL podporuje klíčové slovo IGNORE
pro INSERT
UPDATE
atd. Pokud jej použijete, MySQL bude ignorovat porušení primárního klíče nebo jedinečného klíče a bude pokračovat ve zpracování dalším řádkem. Viz kapitola pro příkaz, který používáte (kapitola 13.2.6, „Příkaz INSERT“, kapitola 13.2.13, „Příkaz UPDATE“, a tak dále).
Informace o počtu skutečně vložených nebo aktualizovaných řádků můžete získat pomocí funkce mysql_info()
C API. Můžete také použít příkaz SHOW WARNINGS
. Viz mysql_info() a část 13.7.7.42, „Příkaz SHOW WARNINGS“.
InnoDB
a NDB
tabulky podporují cizí klíče. Viz kapitola 1.7.3.2, „Omezení FOREIGN KEY“.