标签: sql-insert

将布尔值插入到 sqlite 表中

我创建了一个表 MYTABLE

CREATE TABLE "MYTABLE" (
       "surname" VARCHAR,
       "name" VARCHAR,
       "id" INTEGER PRIMARY KEY  NOT NULL ,
       "flag" BOOL);
Run Code Online (Sandbox Code Playgroud)

当我插入一条记录时:

INSERT INTO "MYTABLE" VALUES ("Super","Mario","94", true);
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息,即no such column: true. 如果我使用这个:

INSERT INTO "MYTABLE" VALUES ("Super","Mario","94", "true");
Run Code Online (Sandbox Code Playgroud)

我没有收到任何错误,但是当我阅读该记录时,rs.getBoolean("flag")我得到了错误。

最后,我试过这个

INSERT INTO "MYTABLE" VALUES ("Super","Mario","94", 1); 
Run Code Online (Sandbox Code Playgroud)

rs.getBoolean("flag")回报true。所以这里的教训是 Sqlite 中的布尔值插入 0/1 ?

sqlite sql-insert

8
推荐指数
2
解决办法
8331
查看次数

带有 WHERE 子句的 PostgreSQL ON CONFLICT

Postgres 文档使它看起来像 WHERE 子句可以作为 ON CONFLICT 条件:https : //www.postgresql.org/docs/9.5/static/sql-insert.html

我一直无法让它工作(如果可能的话)。这是我尝试过的众多排列之一:

INSERT INTO friends (id, dob, frn, status, "groupId", 
"createdAt", "updatedAt") 
VALUES ('1da04305-68ef-4dc1-be6c-
826ab83a6479', '1937-06-01T08:29:08-07:00', 100001, 'New', 'bc1567bc-
14ff-4ba2-b108-4cb2e0f0f768', NOW(), NOW()) 
ON CONFLICT 
    WHERE frn=100001 DO NOTHING
Run Code Online (Sandbox Code Playgroud)

frn 没有任何约束,所以语法更简单:

ON CONFLICT (frn) DO NOTHING
Run Code Online (Sandbox Code Playgroud)

引发数据库错误。我希望这是一个简单的语法问题。

sql postgresql upsert sql-insert

8
推荐指数
1
解决办法
1万
查看次数

INSERT INTO SELECT 非常慢,但是 INSERT 或 SELECT 单独运行时很快

我有一个这样的SQL:

INSERT INTO table1 (column1, column2) (
    SELECT column3, column4 FROM table2 WHERE column5 = 'value'
);
Run Code Online (Sandbox Code Playgroud)
  • table13,500,000 行。
  • table2900,000 行。
  • SELECT column3, column4 FROM table2 WHERE column5 = 'value'返回 NO 寄存器(零)并且需要大约 0.004 秒。
  • INSERT INTO table1 (column1, column2) VALUES ('value', 'value')也需要约 0.004 秒。

但是,当我将两者结合在一个INSERT INTO SELECT语句中时(如上所示),大约需要 7.7 秒。有解释吗?有解决办法吗?

sql database query-optimization mariadb sql-insert

8
推荐指数
2
解决办法
5989
查看次数

将数据从db插入另一个db

我想从旧的数据库表中获取值到新的数据库表.

旧数据库结构:

表I: Country

  • CountryId
  • 国家的名字

新的数据库结构

表二: Countries

  • ID
  • 名称

我使用了以下插入查询,如,

select 'insert into Countries (Id, Name) select ', countryid, countryname from Country
Run Code Online (Sandbox Code Playgroud)

但我有结果,如,

  • insert into Countries(Id,Name) select 1 India
  • insert into Countries(Id,Name) select 2 Any Country

像那样.

但我需要结果,如,

insert into Countries (Id, Name) values (1, 'India')
Run Code Online (Sandbox Code Playgroud)

为实现这一目标,查询是什么?帮我...

sql sql-server sql-server-2008 sql-insert

7
推荐指数
3
解决办法
5万
查看次数

如何在MySql和Sql Server之间自动传输数据和第四个?

我需要构建一个从SQL Server读取数据并将其插入MySql的过程.更多我还需要另一个过程从MySql Server读取数据并将其插入SQL Server.

我从未做过这样的事情.我想不出办法完成它.谁能告诉我怎么能这样做呢?

我至少欣赏一个可以搜索它的想法.

我一直在谷歌搜索,但没有找到太多的帮助.

我有Scribe软件我不确定Scribe中是否有未来可以帮助我这个?

请注意,此过程将自动运行,以便传输数据或从源接收数据.

mysql sql sql-server sql-insert

7
推荐指数
1
解决办法
8061
查看次数

为什么批量导入比INSERT更快?

我正在编写关于将数据从文件导入SQL Server表的方法的研究生工作.我已经创建了自己的程序,现在我将它与一些标准方法进行比较,如bcp,BULK INSERT,INSERT ... SELECT*FROM OPENROWSET(BULK ...).我的程序从文件中读取行,解析它们并使用普通的INSERT逐个导入它们.我生成的文件有100万行,每行有4列用于测试.现在我的情况是我的程序工作160秒,而标准方法工作5-10秒.

那么问题是为什么BULK操作比100万INSERT更快?他们是否使用特殊手段?你可以解释一下,还是给我一些有用的链接?谢谢!

sql sql-server performance bulkinsert sql-insert

7
推荐指数
1
解决办法
1万
查看次数

种子数据与临时表中的旧日期 - SQL Server

我需要在下面的Temporal Table中为我的本地开发目的播种数据,开始日期应该是旧的.给定的表架构是

CREATE TABLE [dbo].[Contact](
    [ContactID] [uniqueidentifier] NOT NULL,
    [ContactNumber] [nvarchar](50) NOT NULL,
    [SequenceID] [int] IDENTITY(1,1) NOT NULL,
    [SysStartTime] [datetime2](0) GENERATED ALWAYS AS ROW START NOT NULL,
    [SysEndTime] [datetime2](0) GENERATED ALWAYS AS ROW END NOT NULL,
 CONSTRAINT [PK_Contact] PRIMARY KEY NONCLUSTERED 
(
    [ContactID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
    PERIOD FOR SYSTEM_TIME ([SysStartTime], [SysEndTime])
) ON [PRIMARY]
WITH
(
    SYSTEM_VERSIONING = ON (HISTORY_TABLE = [dbo].[ContactHistory] , DATA_CONSISTENCY_CHECK …
Run Code Online (Sandbox Code Playgroud)

sql sql-server temporal-database temporal sql-insert

7
推荐指数
1
解决办法
2097
查看次数

Postgresql INSERT 要求主键值?

运行 Postgres 9.6.6。我创建了一个表如下:

create table person (
id serial primary key,
name text,
role integer references role (id),
phonenumber text);
Run Code Online (Sandbox Code Playgroud)

当我尝试按如下方式插入数据时:

insert into person values ('This Person',2,'+15105551111');
Run Code Online (Sandbox Code Playgroud)

我收到这条消息:

ERROR: invalid input syntax for integer: 'This Person'
Run Code Online (Sandbox Code Playgroud)

这表明 Postgres 期望id. 但是如果id是串行主键,它不应该是自动填充和自动递增的吗?

sql postgresql sql-insert

7
推荐指数
2
解决办法
5432
查看次数

postgresql将结构化数据插入jsonb

我使用 PostgreSQL 10.11 并且希望将以下结构输入 jsonb 字段:

{
 lead: {
    name: string,
    prep: boolean
 },
 secondary: {
   {
       name: string,
        prep: boolean
    },
    {
        name: string,
        prep: boolean
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,lead 是一个带有 name 和 prep 的对象, secondary 是一个包含 name 和 prep 的数组。我怎样才能做到这一点?下面的脚本是创建一个带有 jsonb 字段的表:

CREATE TABLE public.test01 (
  name JSONB DEFAULT '{}'::jsonb NOT NULL
) 
WITH (oids = false);

ALTER TABLE public.test01
  ALTER COLUMN id SET STATISTICS 0;

COMMENT ON COLUMN public.test01.name
IS '''[]''';


ALTER TABLE public.test01
  OWNER TO postgres;
Run Code Online (Sandbox Code Playgroud)

我正在尝试此插入但出现错误: …

sql postgresql json sql-insert jsonb

7
推荐指数
1
解决办法
1万
查看次数

通过管道将多个 SQL 命令传送到 psql CLI

我有一组通过管道组合在一起的 Linux 应用程序

some_application | awk '{print "INSERT INTO my_table VALUES (\x27" $2 "\x27," $3 ")"'
Run Code Online (Sandbox Code Playgroud)

其输出将是一系列 SQLINSERT命令:

INSERT INTO my_table VALUES ('foo',42)
INSERT INTO my_table VALUES ('bar',43)
Run Code Online (Sandbox Code Playgroud)

如何将这些多个命令通过管道传输到psql

一个类似的问题回答了如何使用-cpsql 参数执行单个命令。但这个答案对于我的场景来说并不理想,因为它需要为每个命令建立一个新的连接;我更愿意设置一个连接,然后通过该会话传输所有命令。

预先感谢您的考虑和回复。

postgresql pipe command-line-interface sql-insert psql

7
推荐指数
1
解决办法
6620
查看次数