1。如果是直接插入数据就只能一条一条的用 insert into yourtablename (yourfieldslist) values (valueslist) 了2。如果是从其它表中查询数据后插入某个表用 insert into yourtablename (yourfieldslist) select ... from .... (查询语句,查询的字段列表要与插入的字段列表一一对应)
是直接插入,我在oracle也用以上方法试过了,提示sql语句未结束
insert into yourtablename (yourfieldslist) values (valueslist);末尾必须有分号。
能详细点描述一下么 insert into table1(fd1,fd2,fd3) values(12,34,54),(57,8,54); 这样好像不行啊
T_Sql: insert into tablename select 'a','b','c' union select 'e','f','g' union ........ pL/sql: insert into tablename select 'a','b','c' from dual union select 'e','f','g' from dual union ........
测试环境: CREATE TABLE test_table( id VARCHAR2(2), name VARCHAR2(3), old NUMBER2(2) )INSERT INTO test_table( SELECT '01','aaa',10 FROM DUAL UNION ALL SELECT '02','bbb',20 FROM DUAL UNION ALL SELECT '03','ccc',30 FROM DUAL )要用UNION ALL 来连接,不然如果第2行的数据和第一行的数据一样的话就会导致将重复的数据 当做一行来插入表中,这样违反数据完整性。还可以用一个查询来插入: INSERT INTO table_name(SELECT colunm_name,... FROM table WHERE ...) 查询里面的列值要与插入的表的列值匹配。
insert into yourtablename (yourfieldslist) values (valueslist) 了2。如果是从其它表中查询数据后插入某个表用
insert into yourtablename (yourfieldslist)
select ... from .... (查询语句,查询的字段列表要与插入的字段列表一一对应)
insert into table1(fd1,fd2,fd3) values(12,34,54),(57,8,54);
这样好像不行啊
insert into tablename
select 'a','b','c'
union
select 'e','f','g'
union
........
pL/sql:
insert into tablename
select 'a','b','c' from dual
union
select 'e','f','g' from dual
union
........
CREATE TABLE test_table(
id VARCHAR2(2),
name VARCHAR2(3),
old NUMBER2(2)
)INSERT INTO test_table(
SELECT '01','aaa',10 FROM DUAL UNION ALL
SELECT '02','bbb',20 FROM DUAL UNION ALL
SELECT '03','ccc',30 FROM DUAL
)要用UNION ALL 来连接,不然如果第2行的数据和第一行的数据一样的话就会导致将重复的数据
当做一行来插入表中,这样违反数据完整性。还可以用一个查询来插入:
INSERT INTO table_name(SELECT colunm_name,... FROM table WHERE ...)
查询里面的列值要与插入的表的列值匹配。