Синтаксическая ошибка MySQL при каскадной конфигурации

0

У меня есть этот код MySQL для создания двух таблиц, которые будут иметь однонаправленные отношения для многих (настроенных с помощью hybernate):

DROP SCHEMA IF EXISTS 'msmail-database';

CREATE SCHEMA 'msmail-database';

use 'msmail-database';

SET FOREIGN_KEY_CHECKS = 0;


DROP TABLE IF EXISTS 'mail';

CREATE TABLE 'mail' (
  'id' int(11) NOT NULL AUTO_INCREMENT,
  'usertoken' varchar(128) DEFAULT NULL,
  'send_to' varchar(128) DEFAULT NULL,
  'subject' varchar(128) DEFAULT NULL,
  'content' varchar(128) DEFAULT NULL,

  PRIMARY KEY ('id'),

  UNIQUE KEY 'TITLE_UNIQUE' ('title'),

  ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;


DROP TABLE IF EXISTS 'review';

CREATE TABLE 'file' (
  'id' int(11) NOT NULL AUTO_INCREMENT,
  'name' varchar(256) DEFAULT NULL,
  'path' varchar(256) DEFAULT NULL,
  'mail_id' int(11) DEFAULT NULL,

  PRIMARY KEY ('id'),

  KEY 'FK_MAIL_ID_idx' ('mail_id'),

  CONSTRAINT 'FK_MAIL' 
  FOREIGN KEY ('mail_id') 
  REFERENCES 'mail' ('id') 

  ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;


SET FOREIGN_KEY_CHECKS = 1;

Тем не менее, я получаю сообщение об ошибке при попытке выполнить это из почты CREATE Table, где он говорит в строке с сообщением ON DELETE NO ACTION ON UPDATE NO ACTION - что это не допустимый ввод, и он не должен быть в этой строке.

Теги:

2 ответа

0
Лучший ответ

Вы можете пропустить указание ON DELETE NO ACTION, а также ON UPDATE NO ACTION, поскольку это не требуется вообще, если вы не хотите никаких действий для этих событий.

Значение по умолчанию: NO ACTION, если оно не указано для события ON DELETE или ON UPDATE, поэтому вы можете опустить его и проверить.

Вы использовали Tab или любой другой символ между этими двумя? В качестве другой возможности, я думаю, она читает как одну команду, так и не понимает ее. Поместите оба на отдельные линии и снова проверьте.

0

Я думаю, что конечная запятая вызывает ошибку, попробуйте удалить ее:

UNIQUE KEY 'TITLE_UNIQUE' ('title'),         <-- remove comma
ON DELETE NO ACTION ON UPDATE NO ACTION
  • 0
    Это не помогло.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню