Mysql 创建 table 的语法错误

Mysql syntax error for creating table

我想在 mysql 中创建一个 table:--

create table app_own(app_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
sp_id bigint(20),
title varchar(30),
description varchar(60),
details LONGTEXT(1000),
primary key(app_id ),
FOREIGN KEY (user_id) REFERENCES student(sp_id));

其中 app_id 是主键,sp_id 是来自学生的外键引用 table..

但我收到错误:--

    ERROR 1064 (42000): 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 '(1000)0,primary key(app_id ),FOREIGN KEY (sp_id) 
REFERENCE' at line 1

为什么会出现错误?

您应该使用 varchar(1000) 代替 longtext(1000)

此外 user_id 列在您 table 中不存在。

您不能在此上下文中指定 LONGTEXT。看看 manual.

将您的代码更改为:

create table app_own(app_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
sp_id bigint(20),
title varchar(30),
description varchar(60),
details LONGTEXT,
primary key(app_id),
FOREIGN KEY (user_id) REFERENCES student(sp_id));

此外,您不应该在主键 (app_id) 的括号之间使用空格。

尝试运行这个:-

   use db;
CREATE TABLE parent (
    id INT UNSIGNED NOT NULL,
    PRIMARY KEY (id)
) ;

CREATE TABLE Persons
(
PID int UNSIGNED  NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City longtext,
PRIMARY KEY (PID),
FOREIGN KEY (PID) 
        REFERENCES parent(id)
 ON DELETE CASCADE
);

LONGTEXT [字符集charset_name][整理collation_name]

最大长度为 4,294,967,295 或 4GB (232 − 1) 个字符的 TEXT 列。如果值包含多字节字符,则有效最大长度会更短。 LONGTEXT 列的有效最大长度还取决于 client/server 协议中配置的最大数据包大小和可用内存。每个 LONGTEXT 值都使用 4 字节长度前缀存储,该前缀指示值中的字节数。