create table video(
ID int auto_increment,
title varchar(20),
country varchar(20),
producer varchar(20),
release_date datetime default 0,
color varchar(5),
genre varchar(20),
primary key (ID)
);
create table performer(
vid_id int,
perf_id int not null,
age number(3),
name varchar(10),
gender varchar(6),
primary key (perf_id),
foreign key (vid_id) references video (ID)
);
以上是我编写的用于创建名为视频和执行者的表格的脚本。执行脚本时,MySQL会创建表视频,但会生成以下错误:
#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 'number(3),
name varchar(10),
gender varchar(6),
primary key (perf_id)' at line 4
我认为定义外键和主键的语法是正确的,但仍会弹出此错误。如果我错了,请纠正我。
答案 0 :(得分:2)
number
不正确。 MySQL不支持tinyint
格式。您可以使用age tinyint(3) UNSIGNED
数据类型来存储年龄。
示例:
UNSIGNED
name_vars = strsplit(data_csv{1},',');
values = cell2mat(cellfun(@str2num,data_csv(2:end),'Uni',false));
可以存储最多127个值。
参考link
答案 1 :(得分:1)
我认为你使用的是Oracle数据库。 在Oracle中:数字(p,s):在 - (10 125)到+(10 125)范围内最多包含38位有效数字的十进制数字。其中p是精度,s是刻度。 但在mysql中对应的是Decimal(p,s)