Надо что бы при удалении пользователя удалялись все его сообщения в чате. Вот что есть: Код (Text): CREATE TABLE users ( id bigint(20) unsigned auto_increment, registration datetime, email varchar(255) UNIQUE NOT NULL, name varchar(20) NOT NULL, password varchar(255) NOT NULL, PRIMARY KEY (id) ) ENGINE=INNODB; CREATE TABLE messages ( id bigint(20) unsigned auto_increment, dispatch datetime, message text(500) NOT NULL, user_id bigint(20) unsigned NOT NULL, PRIMARY KEY (id) ) ENGINE=INNODB; ALTER TABLE users FOREIGN KEY (id) REFERENCES messages(user_id) ON DELETE CASCADE; ALTER TABLE messages FOREIGN KEY (user_id) REFERENCES users(id); При попытке импорта в phpMyAdmin ругаеться, а как это сделать по другому не знаю. Подскажите пожалуйста в чем моя ошибка.
Ошибка Статический анализ: Найдено 1 ошибок при анализе. Нераспознанная операция изменения. (near "" at position 0) SQL запрос: ALTER TABLE users FOREIGN KEY (id) REFERENCES messages(user_id) ON DELETE CASCADE Ответ MySQL: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FOREIGN KEY (id) REFERENCES messages(user_id) ON DELETE CASCADE' at line 1
Код (Text): CREATE TABLE `users` ( `id` bigint(20) unsigned auto_increment, `date` timestamp DEFAULT CURRENT_TIMESTAMP, `email` varchar(255) UNIQUE NOT NULL, `name` varchar(20) NOT NULL, `password` varchar(255) NOT NULL, `hash` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=INNODB; CREATE TABLE `messages` ( `id` bigint(20) unsigned auto_increment, `date` timestamp DEFAULT CURRENT_TIMESTAMP, `update` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `message` text(500) NOT NULL, `user_id` bigint(20) unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=INNODB; ALTER TABLE `users` FOREIGN KEY (`id`) REFERENCES `messages`(`user_id`) ON DELETE CASCADE; ALTER TABLE `messages` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`); Все таже ошибка
Все разобрался, вот так работает: Код (Text): CREATE TABLE `users` ( `id` bigint(20) unsigned auto_increment, PRIMARY KEY (`id`) ) ENGINE=INNODB; CREATE TABLE `messages` ( `id` bigint(20) unsigned auto_increment, `user_id` bigint(20) unsigned NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE ) ENGINE=INNODB;