MySQL: foreign_key_cheks

Panchous

Павел
MySQL: foreign_key_cheks

Помогите! Туплю! :confused:
При попытке выполнить:
Код:
SET FOREIGN_KEY_CHECKS = 0;

# user# -----------------------------------------------------------------------
DROP TABLE IF EXISTS `user`;

CREATE TABLE `user`(
    `user_id` INTEGER NOT NULL AUTO_INCREMENT,
    `department_id` INTEGER NOT NULL,
    PRIMARY KEY(`user_id`),
    CONSTRAINT `user_ibfk_1` FOREIGN KEY (`department_id`) REFERENCES `department` (`department_id`))
Type=InnoDB;

# department# -----------------------------------------------------------------------
DROP TABLE IF EXISTS `department`;

CREATE TABLE `department`(
    `department_id` INTEGER NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(20) NOT NULL,
    PRIMARY KEY(`department_id`))
Type=InnoDB;

# -----------------------------------------------------------------------
SET FOREIGN_KEY_CHECKS = 1;
получаю:
#1005 - Can't create table '.\ads\user.frm' (errno: 150)
Раньше вроде такие запросы работали...
Что со мной?)

________________
WindowsServer2003
MySQL 4.0.22-nt

-~{}~ 19.04.05 16:25:

PS:
sql-скрипт генерится PROPEL'ом...
 

Demiurg

Guest
сначала создавай таблицу department потом уже user
 

Panchous

Павел
Demiurg
это понятно, но раньше я пользовался таким скриптом и все работало...

проблема в том, что там куча таблиц с всевозможными зависимостями - и как тогда быть?

говорю же:
SQL-скрипт генерит PROPEL!
не перелопачивать же каждый раз генерируемый файл?

sql-код, ведь, корректный.
меня интересует, почему он может обломиться.
 

Demiurg

Guest
>SQL-скрипт генерит PROPEL!
ну тогда это вопрос к разработчикам этого самого пропела
 

Апельсин

Оранжевое создание
Открываем документацию и читаем:

Both tables must be InnoDB type.

* In the referencing table, there must be an index where the foreign key columns are listed as the first columns in the same order.

* In the referenced table, there must be an index where the referenced columns are listed as the first columns in the same order.

* Index prefixes on foreign key columns are not supported. One consequence of this is that BLOB and TEXT columns cannot be included in a foreign key, because indexes on those columns must always include a prefix length.
А теперь смотрим на структуру своих таблиц и пытаемся понять почему у нас оно не работает.
 
Сверху