Внешние ключи и MySQL Errors

UPDATE table1, table2 SET table1.col1='value', table2.col1='value' WHERE table1.col3='567' AND table2.col6='567'

Это должно работать на Вас.

существует ссылка в руководство MySQL для нескольких таблиц.

10
задан OMG Ponies 30 April 2011 в 17:16
поделиться

1 ответ

Вы всегда можете выполнить команду «SHOW ENGINE INNODB STATUS». В выводе будет скрытый раздел «ПОСЛЕДНЯЯ ОШИБКА ИНОСТРАННОГО КЛЮЧА», в котором будет более подробная информация о том, что именно вызвало ошибку «150»:

mysql> create table a (x int not null) type=innodb;
Query OK, 0 rows affected, 1 warning (0.02 sec)

mysql> create table b (y int not null, foreign key (y) references a (x) on delete set null) type=innodb;
ERROR 1005 (HY000): Can't create table './test/b.frm' (errno: 150)

mysql> show engine innodb status;
[..... snip snip snip ...]
------------------------
LATEST FOREIGN KEY ERROR
------------------------
091129 16:32:41 Error in foreign key constraint of table test/b:
foreign key (y) references a (x) on delete set null) type=innodb:
You have defined a SET NULL condition though some of the
columns are defined as NOT NULL.
[.... snip snip snip ...]
16
ответ дан 3 December 2019 в 22:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: