php - MySQL - PhpMyadmin - 创建多个表

标签 php mysql ddl create-table

我不明白为什么这个查询不能在 PHPMyAdmin 中创建这个表结构。

我总是收到这个错误信息:

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 Server 的语法。 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)
);

关于php - MySQL - PhpMyadmin - 创建多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36237049/

相关文章:

php - 需要使用 MySQL 查询插入封装的 XML 元素

php - 什么情况下黑客会拿到表,却拿不到PHP代码?

mysql - 既作为 'DELETE' 的目标又作为单独的数据源

sql-server - 同一张表上的两个外键 : how to implement on delete cascade?

php - 如何存储来自 JSON api 的 moSTLy 静态数据?

PHP headless 浏览器?

php - 如何使用 PHP echo 函数在 JavaScript 中定义变量?

javascript - jquery 而 php 显示隐藏

hive - Hive 中的日期比较

database - 一对多关系中的标识符