标签: sql-insert

根据 id 列表为多条记录插入相同的值

我有一个 PostgreSQL 数据库,想要根据我拥有的记录 ID 为多条记录插入相同的值。有没有办法在语句中
设置条件?例如:WHEREINSERT

insert into Customers (new-customer) values ('t') where customer_id in (list)
Run Code Online (Sandbox Code Playgroud)

sql postgresql sql-insert unnest

3
推荐指数
1
解决办法
2569
查看次数

在 SQL Server 中使用 CTE 插入查询

我想使用 CTE 从另一个表插入一个表。我之前尝试过加分号with,但不起作用。

这是我的查询:

INSERT INTO [autoFIE2].[dbo].[tbl_article_type_parent_child] ([art_typ_parent_index], [art_typ_child_index])
WITH article_type_list AS
(
    SELECT 
       art_typ_child_index, art_typ_parent_index
    FROM
       [autoFIE2].[dbo].[tbl_article_type_parent_child]  
    WHERE 
       art_typ_parent_index IS NULL 
    UNION ALL
    SELECT 
       a.art_typ_child_index, a.art_typ_parent_index
    FROM
       [autoFIE2].[dbo].[tbl_article_type_parent_child] A 
    INNER JOIN 
       article_type_list as AL ON a.art_typ_parent_index = al.art_typ_child_index
    WHERE 
       a.art_typ_parent_index IS NOT NULL)
SELECT * 
FROM article_type_list;
Run Code Online (Sandbox Code Playgroud)

执行此语句时出错:-

消息 156,级别 15,状态 1,第 4
行关键字“with”附近的语法不正确。

消息 319,级别 15,状态 1,第 4 行
关键字“with”附近的语法不正确。如果此语句是公用表表达式、xmlnamespaces 子句或更改跟踪上下文子句,则前一个语句必须以分号终止。

我应该怎么做才能将这些分层数据插入到另一个表中。有什么建议吗?

sql-server common-table-expression sql-insert

3
推荐指数
1
解决办法
7019
查看次数

如何从sqlx获取最后插入行的id?

我想使用以下方法取回插入 MySql 数据库的最后一篇文章的 id sqlx

resultPost, err := shared.Dbmap.Exec("INSERT INTO post (user_id, description, link) VALUES (?, ?, ?)", userID, title, destPath)
if err != nil {
    log.Println(err)
    c.JSON(
        http.StatusInternalServerError,
        gin.H{"error": "internal server error"})
}

fmt.Println("resultPost is:", resultPost)
Run Code Online (Sandbox Code Playgroud)

问题是 被resultPost打印为对象:

resultPost is: {0xc420242000 0xc4202403a0}
Run Code Online (Sandbox Code Playgroud)

所以我想知道提取刚刚插入的行的 id 的正确方法是什么?

mysql sql go sql-insert sqlx

3
推荐指数
1
解决办法
5675
查看次数

Python UpSert - 参数不足

今天这有点令人沮丧。我确信我忽略了一些简单的事情。请参阅下面的代码(为了示例而简化):

def dbUpsert(sqlQuery, sqlValues):
    # Connect to the database
    connection = pymysql.connect(host='localhost',
                                user='db_user',
                                password='###',
                                db='garden',
                                charset='utf8mb4',
                                cursorclass=pymysql.cursors.DictCursor)
    try:
        with connection.cursor() as cursor:
            # Create a new record
            cursor.execute(sqlQuery, sqlValues)
        # Commit the changes
        connection.commit()
    finally:
        connection.close()


sqlValues = real_plants, datetime.datetime.today().strftime('%Y-%m-%d'),  10
print (sqlValues)
##### Output: ('roses', '2020-02-19', 10)

sqlQuery = """
    INSERT INTO summ_plants_day 
        (
            real_plants, d_date, acc_plants
        )
    VALUES (%s, %s, %s)
    ON DUPLICATE KEY UPDATE
        real_plants = %s,
        d_date = %s,
        acc_plants = %s
    """
dbUpsert(sqlQuery, sqlValues)
Run Code Online (Sandbox Code Playgroud)

在我的数据库中,我有 …

python mysql sql sql-update sql-insert

3
推荐指数
1
解决办法
512
查看次数

在 Azure SQL 数据库中使用“INSERT INTO”SQL 查询时出错

我已使用 SQL 数据库创建了一个 Azure SQL Server,并在该数据库中创建了一个名为 table1 的表,其中包含 ID、FirstName、LastName 和 DOB 列。但是,当我尝试使用这个语句时:

INSERT INTO table1(ID, FirstName, LastName, DOB)
VALUES (1, "Rohit", "Karthik", "8/2/06")
Run Code Online (Sandbox Code Playgroud)

它输出一个错误:

Failed to execute query. Error: Invalid column name 'Rohit'.
Invalid column name 'Karthik'.
Invalid column name '8/2/06'.
Run Code Online (Sandbox Code Playgroud)

(顺便说一句:ID是int类型,其他都是varchar类型)

SQL Server 中的上述 SQL 查询不应该在该表中插入新行吗?

我不确定为什么会出现这个错误,请帮忙。

sql t-sql sql-server azure sql-insert

3
推荐指数
1
解决办法
5248
查看次数

POSTGRES - 使用 ON CONFLICT DO NOTHING 防止串行增量

这个问题的副本

说我有下表的东西。我想要表中的唯一名称,所以没有重复。插入事物的过程不需要检查具有此名称的事物是否已经存在。

CREATE TABLE things(
    id SMALLSERIAL PRIMARY KEY,
    name varchar UNIQUE
);
Run Code Online (Sandbox Code Playgroud)

当我插入这样的值时,它会起作用。如果 'desk' 已经在东西里,它就不会被插入。

INSERT INTO things (name)
VALUES ('desk')
ON CONFLICT DO NOTHING;
Run Code Online (Sandbox Code Playgroud)

唯一的问题是 ON CONFLICT DO NOTHING 并不是真的什么都不做。它仍然增加 id 字段的序列。

如果这种情况发生得太频繁,那么 id 序列最终会变得对于字段类型来说太大。

有没有办法防止这种情况发生?

sql postgresql create-table auto-increment sql-insert

3
推荐指数
1
解决办法
316
查看次数

如何使用 BigQuery Python API 附加查询结果

我找不到将查询结果附加到 BigQuery 中已存在且按小时分区的表的方法。我只找到了这个解决方案: https: //cloud.google.com/bigquery/docs/writing-results#writing_query_results

job_config = bigquery.QueryJobConfig(destination=table_id)

sql = """SELECT * FROM table1 JOIN table2 ON table1.art_n=table2.artn"""

# Start the query, passing in the extra configuration.
query_job = client.query(sql, job_config=job_config)  # Make an API request.
query_job.result()  # Wait for the job to complete.
Run Code Online (Sandbox Code Playgroud)

但是提供一个目标表来bigquery.QueryJobConfig覆盖它,我没有发现有bigquery.QueryJobConfig一个选项可以指定if_exists或其他东西。据我了解,我需要应用于job.insert查询结果,但我不明白如何。

我也没有找到任何好的建议,也许有人可以指点我?

以防万一,我的实际查询很大,我从一个单独的 JSON 文件加载它。

python api sql-insert google-bigquery

3
推荐指数
1
解决办法
4743
查看次数

如何向 PostgreSQL 中的表插入布尔值?

然后我从MySQL转到PostgreSQL ,我在PostgreSQL中创建了带有BOOLEAN列的test,如下所示:state

CREATE TABLE test (
  state BOOLEAN -- Here
);
Run Code Online (Sandbox Code Playgroud)

但是,即使下面的 SQL 查询在MySQL中工作,我也无法插入TRUEwith1FALSEwith0test,如下所示:

INSERT INTO test VALUES (1);
Run Code Online (Sandbox Code Playgroud)
INSERT INTO test VALUES (0);
Run Code Online (Sandbox Code Playgroud)

然后,我收到以下错误:

ERROR:  column "state" is of type boolean but expression is of type integer
Run Code Online (Sandbox Code Playgroud)

那么,如何向表中插入布尔值呢?

sql database postgresql boolean sql-insert

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

如何在SQL中将两列附加到一列?

我的表中有两列名为Workers - Technicians.在工人我有工人的名字,在技术员,我有在公司工作的技术人员的名字.以下是它的外观:

工人                              技师

Andy                  Kevin
Conan                 Jason
Jay                   Ray
Donald                Daryl
Martin                .
Mark                  .(rows goes on)
.
.(rows goes on)       
Run Code Online (Sandbox Code Playgroud)

我想要做的是附加这些行并有一个名为Employees的列.这就是我想要的:

雇员

Andy                  
Conan                 
Jay                   
Donald               
Martin                
Mark
Kevin
Jason
Ray
Daryl
.
.
Run Code Online (Sandbox Code Playgroud)

我不想创建另一个表,我只想添加一个新列.我该怎么办?

sql sql-server sql-update sql-insert

2
推荐指数
3
解决办法
5780
查看次数

为什么Salesforce阻止我使用包含关系的查询创建推送主题?

当我在开发者控制台中执行此代码时

PushTopic pushTopic = new PushTopic();
pushTopic.ApiVersion = 23.0;
pushTopic.Name = 'Test';
pushTopic.Description = 'test';
pushtopic.Query = 'SELECT Id, Account.Name FROM Case';
insert pushTopic;
System.debug('Created new PushTopic: '+ pushTopic.Id);
Run Code Online (Sandbox Code Playgroud)

我收到此消息:

致命错误System.DmlException:插入失败.第0行的第一个例外; 第一个错误:INVALID_FIELD,不支持关系:[QUERY]

相同的查询在查询编辑器上运行正常,但是当我将其分配给推送主题时,我得到了INVALID_FIELD异常.

如果底线是异常消息所说的内容,Push Topic对象不支持这种关系,那么如何创建一个Push Topic对象来返回我正在寻找的数据?

exception salesforce soql apex-code sql-insert

2
推荐指数
1
解决办法
1659
查看次数