我已经开始学习SQL,并且在创建数据和将数据插入表中时遇到了麻烦。这是我尝试的代码,我收到一条错误消息,提示没有足够的值。我正在使用Oracle。
Create table project ( proj_id number(10), medic_name varchar2(10), purpose varchar2(12), start_date date, end_date date, pi_id null, CONSTRAINT pkprojid primary key (proj_id), CONSTRAINT fkproject foreign key (pi_id) references researcher ); alter session set nls_date_format = 'mm/dd/yyyy'; Insert into project values (PR001, 'Medic1', 'heart', '09/01/2017', '07/31/2019'); Insert into project values (PR002, 'Medic1', 'diabetes', '10/01/2016', '07/31/2020); Insert into project values (PR003, 'Medic3', 'lung', '11/1/2014', '12/31/2020'); Insert into project values (PR004, 'Medic3', 'blood', '01/10/2017', '07/31/2019'); Insert into project values (PR005, 'Medic5', 'blood', '07/10/2018', '01/31/2020'); alter session set nls_date_format = 'mm/dd/yyyy';
GMB.. 5
插入项目值中(PR001,'Medic1','heart','09/01/2017','07/31/2019');
问题:
您的表有6列,您只需传递5列即可插入;似乎您缺少最后一列(pi_id
),因此您收到的错误消息。如果要跳过最后一列(由于它被声明为可为空,则可以这样做),可以在插入时明确列出该列
第一列(proj_id
)为资料number
类型;PR001
不是数字(也不是字符串,因为没有引号:这是语法错误);你是说意思1
吗?或者,如果要插入字符串值,则需要将column的数据类型更改proj_id
为varchar(N)
(N
是字符串的最大长度,以字节为单位)。
这是一条insert
适用于当前表定义的语句:
insert into project(proj_id, medic_name, purpose, start_date, end_date) values (1, 'Medic1', 'heart', '09/01/2017', '07/31/2019');
注意:第二条insert
语句的日期结尾处缺少引号;我认为这是一个错字。
插入项目值中(PR001,'Medic1','heart','09/01/2017','07/31/2019');
问题:
您的表有6列,您只需传递5列即可插入;似乎您缺少最后一列(pi_id
),因此您收到的错误消息。如果要跳过最后一列(由于它被声明为可为空,则可以这样做),可以在插入时明确列出该列
第一列(proj_id
)为资料number
类型;PR001
不是数字(也不是字符串,因为没有引号:这是语法错误);你是说意思1
吗?或者,如果要插入字符串值,则需要将column的数据类型更改proj_id
为varchar(N)
(N
是字符串的最大长度,以字节为单位)。
这是一条insert
适用于当前表定义的语句:
insert into project(proj_id, medic_name, purpose, start_date, end_date) values (1, 'Medic1', 'heart', '09/01/2017', '07/31/2019');
注意:第二条insert
语句的日期结尾处缺少引号;我认为这是一个错字。