-1

显然,我在以下 SQL 语句中有语法错误:

create database project_line;

use project_line;

drop table if exists project;
create table project
(
    p_id int primary key,
    p_nm varchar(255) not null,
    p_line varchar(255) not null
)
ENGINE = INNODB;

drop table if exists meta;
create table meta
(
    m_id primary key,
    p_id not null,
    meta_nm varchar(255) not null,
    foreign key (p_id) references project (p_id)
)
ENGINE = INNODB;

你能指出在哪里吗?

4

3 回答 3

0

您忘记了m_id和 的数据类型p_id

create table meta
(
    m_id primary key,          <------here
    p_id not null,             <------here
    meta_nm varchar(255) not null,
    foreign key (p_id) references project (p_id)
)

应该是 int

例如,如果您使用MySQL Workbench之类的设计工具,您会立即注意到此类错误,因为它们会被突出显示。

于 2013-05-13T10:36:29.463 回答
0

在第二个表中指定数据类型。试试这个 sql。

create table project
(
    p_id int primary key,
    p_nm varchar(255) not null,
    p_line varchar(255) not null
)
ENGINE = INNODB;


create table meta
(
    m_id int primary key,
    p_id int not null,
    meta_nm varchar(255) not null,
    foreign key (p_id) references project (p_id)
)
ENGINE = INNODB;
于 2013-05-13T10:36:54.320 回答
0

您缺少字段“m_id”和“p_id”的数据类型。那就是你的错误来的地方。尝试这个:

创建数据库project_line;

使用项目线;

如果存在项目,则删除表;创建表项目(p_id int 主键,p_nm varchar(255) not null,p_line varchar(255) not null)ENGINE = INNODB;

如果存在 meta 则删除表;创建表元(m_id int 主键,p_id int 非空,meta_nm varchar(255) 非空,外键 (p_id) 引用项目 (p_id))ENGINE = INNODB;

于 2013-05-13T10:40:23.167 回答