MySQL创建表查询1064错误

时间:2015-11-21 06:21:22

标签: mysql sql

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 

我认为定义外键和主键的语法是正确的,但仍会弹出此错误。如果我错了,请纠正我。

2 个答案:

答案 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)