MySQL - PhpMyadmin - 创建多个表

MySQL - PhpMyadmin - Create Multiple Tables

我不明白为什么这个查询无法在 PHPMyAdmin 中创建这个 table 结构。

我总是收到此错误消息:

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 'MAX), FOREIGN KEY (form_id) REFERENCES form (Id) )' at line 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)
);

varchar(max) 是 MS SQL 服务器的语法。 MySQL 没有对应的尺寸,因此您只能使用非常长的尺寸。另外,一旦你解决了这个问题,你会遇到 form_data.form_idform.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)
);

table form_data 中有 2 个问题:

  1. form_id的类型,应该是INT UNSIGNED来匹配table的Id类型 form
  2. 使用formdata 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)
);

您的错误来自:

formdata VARCHAR(MAX),

将 MAX 更改为一个值。