使用Sqlite插入多组值

时间:2013-10-26 07:10:15

标签: sql sqlite

我想使用单个插入查询在SQLite中添加多个项目/行,

 insert into suppliers (supoliers_no,supply_name,city,phone_no)
      values (1,'Ali','amman',111111), (2,'tariq','amman',777777), (3,'mohmmed','taiz',null);

是否可以使用Sqlite?

5 个答案:

答案 0 :(得分:2)

应该是: -

insert into suppliers (supoliers_no,supply_name,city,phone_no) values (1,'Ali','amman',111111);

insert into suppliers (supoliers_no,supply_name,city,phone_no) values  (2,'tariq','amman',777777);

insert into suppliers (supoliers_no,supply_name,city,phone_no) values  (3,'mohmmed','taiz',null);

同样insert into suppliers (supoliers_no,supply_name,city,phone_no) values (3,'mohmmed','taiz',null); null不是sql中可识别的关键字。所以你可能需要尝试insert into suppliers (supoliers_no,supply_name,city,phone_no) values (3,'mohmmed','taiz','');

答案 1 :(得分:2)

一行代码中的多个插入行是

INSERT INTO TableName ( Column1, Column2,Column3 ) VALUES ( Value1, Value2 ,Value3), ( Value1, Value2,Value3 );

在你的情况下代码是正确的,但

(3,'mohmmed','taiz',null);尝试给予一些价值。 你也可以从这里参考

Inserting multiple rows in a single SQL query?

答案 2 :(得分:2)

这是可能的,但在SQLITE中执行此操作的方式不同,

试试这个......

insert into myTable (mycol1,mycol2) 
select aValue as mycol1,anotherValue as mycol2 
union select moreValue,evenMoreValue 
union...

在你的情况下它将是,

    INSERT INTO suppliers 
        SELECT 1 AS supoliers_no, 'Ali' AS supply_name, 'amman' AS city, 111111 AS phone_no
  UNION SELECT 2 , 'tariq' , 'amman' , 77777 
  UNION SELECT 3 , 'mohmmed' , 'taiz', null

记住 null小写字母在SQL Lite中工作,因为我创建了此表,在我的情况下在INT中使用phone_no

答案 3 :(得分:0)

仅在SQLite 3.7.11及更高版本中支持使用单个INSERT语句插入多个记录。 在早期版本中,您必须将INSERT ... SELECT ...UNION ALL一起使用,或使用多个语句。

答案 4 :(得分:-1)

我们假设您的桌面设计得很好,现在您可以在表格中插入多条记录:

INSERT INTO Table ( Column1, Column2 ) VALUES
( Value1, Value2 ), ( Value1, Value2 )  

有关这方面的参考,请参阅MOC课程2778A - 在SQL Server 2008中编写SQL查询,这项工作可能会导致您的设计出现问题,例如您无法在表中插入空数据。