MySQL — PhpMyadmin — создание нескольких таблиц

Я не могу понять, почему этот запрос не работает для создания этой структуры таблицы в PHPMyAdmin.

Я всегда получаю это сообщение об ошибке:

около ‘MAX),
КЛЮЧЕВОЙ КЛЮЧ (form_id) ССЫЛКИ form (Id)) ‘в строке 4

CREATE TABLE form(
Id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
Title VARCHAR(500),
Is_Active BIT,
Is_Trash BIT,
Date_Created DATETIME
);
CREATE TABLE form_data(
Id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
form_id INT,
formdata VARCHAR(MAX),
FOREIGN KEY (form_id) REFERENCES form (Id)
);

0

Решение

varchar(max) синтаксис MS SQL Server MySQL не имеет эквивалента, поэтому вам просто придется использовать очень длинный размер. Кроме того, как только вы решите эту проблему, вы столкнетесь с проблемой, когда form_data.form_id не того же типа, что и form.id (один не подписан, а другой нет), поэтому он не может ссылаться на него. Короче:

CREATE TABLE form_data(
Id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
form_id INT UNSIGNED, -- Second issue
formdata VARCHAR(4000), -- First issue
FOREIGN KEY (form_id) REFERENCES form (Id)
);
3

Другие решения

В таблице 2 проблемы form_data:

  1. тип form_id, он должен быть INT UNSIGNED, чтобы соответствовать типу таблицы типа Id form
  2. Используя формданные VARCHAR (MAX), вы должны изменить MAX на действительное целое число, например 255

Попробуйте этот код:

CREATE TABLE form(
Id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
Title VARCHAR(500),
Is_Active BIT,
Is_Trash BIT,
Date_Created DATETIME
);
CREATE TABLE form_data(
Id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
form_id INT UNSIGNED,
formdata VARCHAR(255),
FOREIGN KEY (form_id) REFERENCES form (Id)
);
2

Ваша ошибка произошла от:

formdata VARCHAR(MAX),

Измените MAX на значение.

1
По вопросам рекламы [email protected]