我无法理解为什么此查询无法在PHPMyAdmin中创建此表结构。
我总是收到此错误消息:
1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法
<'>'MAX'附近, FOREIGN KEY(form_id)REFERENCES表格(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 :(得分:3)
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)
);
答案 1 :(得分:2)
表form_data
中有2个问题:
form
的Id类型的类型试试这段代码:
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 :(得分:1)
您的错误来自:
formdata VARCHAR(MAX),
将MAX更改为某个值。