我得到了这个例子,在这里有一些帮助:
http://sqlfiddle.com/#!2/92e87/1
但是,如果我想尝试为表的每个子项插入信息,我似乎无法使其工作(使用此代码):
CREATE TABLE country (
id integer NOT NULL PRIMARY KEY AUTO_INCREMENT,
name varchar(255) NOT NULL
)
;
CREATE TABLE location (
id integer NOT NULL PRIMARY KEY AUTO_INCREMENT,
name varchar(255) NOT NULL,
coordinate varchar(255) NOT NULL,
country_id integer NOT NULL REFERENCES country (id)
)
;
CREATE TABLE item (
id integer NOT NULL PRIMARY KEY AUTO_INCREMENT,
title varchar(60) NOT NULL,
description varchar(900) NOT NULL,
date datetime NOT NULL,
source varchar(255) NOT NULL,
link varchar(255) NOT NULL,
location_id integer NOT NULL REFERENCES location (id)
)
;
Insert Into item (title) values ('Title');
Insert Into item (description) values ('Description');
Insert Into item (date) values ('1995-12-31T23:59:59Z');
Insert Into item (source) values ('Source');
Insert Into item (link) values ('Link');
Insert Into item (location_id) values ('1');
这是正确的做法吗?其次,它告诉我“描述”没有默认值,但如果我总是将信息放入其中,它是否需要一个?
感谢您提供任何帮助
答案 0 :(得分:2)
对于每个插入,最终将在项目表中添加一行新数据。我不认为这是你想要的。相反,做:
INSERT INTO item VALUES (NULL, [title], [description], [date], [source], [link], [location_id]);
将[和]中的项目替换为适当的值。
您被告知Description没有默认值,因为在没有为该列指定值的INSERT语句中,没有数据库可以为该字段填写的默认值。
答案 1 :(得分:2)
Insert Into item (title, description, date, source, link, location_id)
values ('Title', 'Description','1995-12-31T23:59:59Z','source','Link',1);
每个插入都用作插入新记录。因此,您需要将所有数据组合成一个插入语句,如上所述。
SQL要求提供默认值,因为您在已创建的表定义中提到了NOT NULL
。