я не верю, что не было никаких ошибок
@md5, смотри фокус:
drop table if exists `t2`;
drop table if exists `t1`;
create table `t1` (
`id` int auto_increment,
primary key(`id`)
) engine = innodb;
create table `t2` (
`id` int auto_increment,
`t1_id` int,
primary key (`id`),
foreign key (`t1_id`) references `t1`(`id`)
) engine = innodb;
как и ожидается, создаст две таблицы и между ними внешний ключ t2.t1_id -> t1.id
теперь меняем движок на myisam, в котором, как известно, внешние ключи не поддерживаются:
drop table if exists `t2`;
drop table if exists `t1`;
create table `t1` (
`id` int auto_increment,
primary key(`id`)
) engine = myisam;
create table `t2` (
`id` int auto_increment,
`t1_id` int,
primary key (`id`),
foreign key (`t1_id`) references `t1`(`id`)
) engine = myisam;
или так
create table `t1` (
`id` int auto_increment,
primary key(`id`)
) engine = myisam;
create table `t2` (
`id` int auto_increment,
`t1_id` int,
primary key (`id`)
) engine = myisam;
alter table `t2` add foreign key (`t1_id`) references `t1`(`id`);
Создадутся две таблицы БЕЗ ключа и БЕЗ ошибок.
а теперь самая мякотка, без указания движка:
create table `t1` (
`id` int auto_increment,
primary key(`id`)
);
create table `t2` (
`id` int auto_increment,
`t1_id` int,
primary key (`id`),
foreign key (`t1_id`) references `t1`(`id`)
);
И мы получаем неизвестный результат без ошибок.
А неизвестный потому что тип таблиц будет зависеть от default_storage_engine в my.cnf
Спустя 95 сек.
а чем бекапили/восстанавливали? mysqldump+musql < ololo.sql?
@Абырвалг, да, mysqldump + mysql source ololo.sql