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 字节长度前缀存储,该前缀指示值中的字节数。
我想在 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 字节长度前缀存储,该前缀指示值中的字节数。