标签: sql-insert

在 PL/pgSQL 中 INSERT 后获取默认序列值

我有一张桌子。我在 plpgsql 中编写了一个函数,将一行插入到该表中:

INSERT INTO simpleTalbe (name,money) values('momo',1000) ;
Run Code Online (Sandbox Code Playgroud)

该表有serial一个名为 的字段id。我希望在插入行后在函数中知道新行收到的 id。

我想使用:

select nextval('serial');
Run Code Online (Sandbox Code Playgroud)

在插入之前,有没有更好的解决方案?

postgresql plpgsql nextval sql-insert sql-returning

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

将 INSERT 与 SELECT 语句与自定义值结合起来

我需要清理我的 MySQL 数据库并根据当前状态创建大量新记录。我需要插入这个:

INSERT INTO wp_postmeta (post_id, meta_key, meta_value) VALUES ($ID, "price_input_currency", "usd")
Run Code Online (Sandbox Code Playgroud)

对于我从该选择中获得的每个 $ID:

SELECT ID FROM wp_posts AS posts
RIGHT JOIN wp_postmeta ON posts.ID = post_id
WHERE post_type = 'post'
AND meta_value LIKE '%$%' AND meta_key = 'price_range'
Run Code Online (Sandbox Code Playgroud)

仅通过 MySQL 代码就可以做到这一点吗?我见过很多“如何将 INSERT 与 SELECT 结合起来,但他们都没有只使用字符串来插入,他们总是选择需要插入的所有字段......有什么想法吗?

mysql select insert insert-select sql-insert

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

CSV 文件到 SQL 插入语句

我有一个 CSV 文件,看起来像这样:

Date,Person,Time Out,Time Back,Restaurant,Calories,Delicious?
6/20/2016,August,11:58,12:45,Black Bear,850,Y
6/20/2016,Marcellus,12:00,12:30,Brought Lunch,,Y
6/20/2016,Jessica,11:30,12:30,Wendy's,815,N
6/21/2016,August,12:05,1:01,Brought Lunch,,Y
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经成功地将每一行打印到字符串列表中(例如 - ['Date', 'Person', 'Time Out', etc.] or ['6/20/2016', 'August', '11:58' etc.])。

现在我还需要做两件事:

  1. 向每行添加 ID 标题和连续数字字符串(例如 - ['ID', 'Date', 'Person', etc.] and ['1', '6/20/2016', 'August', etc.]
  2. 分隔每一行,以便可以将它们格式化为插入语句,而不是让程序逐行打印出每一行(例如 - INSERT INTO Table ['ID', 'Date', 'Person', etc.] VALUES ['1', '6/20/2016', 'August', etc.]

这是让我到目前为止的代码:

import csv

openFile = open('test.csv', 'r')
csvFile = csv.reader(openFile)
for row in csvFile:
    print (row)
openFile.close()
Run Code Online (Sandbox Code Playgroud)

python mysql csv python-3.x sql-insert

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

SQL 条件插入

我正在使用MySQL。如何根据相关数据的验证对表执行 INSERT?请原谅这个人为的例子。

如果我的表是:

> SELECT * FROM colors;
id color  owner
-- ------ -----
10 red    2
11 banana 6
12 blue   9
Run Code Online (Sandbox Code Playgroud)

> SELECT * FROM fruit;
id  color_id  name
--  --------  -------
59  10        cherry
60  12        blueberry
Run Code Online (Sandbox Code Playgroud)

其中fruit.color是colors.id的外键

我想插入有关香蕉的信息,但前提是颜色的所有者为 6。这是原始插入:

INSERT INTO
    fruit
    (color_id, name)
VALUES
    (11, 'banana');
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情:

INSERT INTO
    fruit
    (color_id, name)
VALUES
    (11, 'banana')

-- ??? I have no idea what to put here ???
ONLY IF (
    (SELECT COUNT(*) FROM fruit
    INNER …
Run Code Online (Sandbox Code Playgroud)

mysql sql conditional-statements sql-insert

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

PostgreSQL:INSERT INTO 语法错误

我正在学习 Postgres 的旧教程,因此自发布以来可能发生了一些变化。在本教程(使用 psql)中,我创建一个表,然后执行一些insert语句。psql以下是导致错误的教程和相应命令:

http://www.postgresqlforbeginners.com/2010/11/create-table-and-constraints.html

create table people(
   id int PRIMARY KEY,
   name varchar NOT NULL
);
insert into people(0,'Steve Jobs');
insert into people(1,'Mike Markkula');
insert into people(2,'Mike Scott');
insert into people(3,'John Sculley');
insert into people(4,'Michael Spindler');
insert into people(5,'Gil Amelio');
insert into people(6,'Mike Scott');
Run Code Online (Sandbox Code Playgroud)

对于每个插入语句,我都会收到此错误:

ERROR:  syntax error at or near "0"
LINE 1: insert into people(0,'Steve Jobs');
                           ^
Run Code Online (Sandbox Code Playgroud)

我尝试过复制粘贴、大写 sql 命令(即INSERT)、从 shell 外部运行命令psql、添加空格、使用"而不是'引号...所有结果都会导致相同的错误。有什么变化或者我可能做错了什么吗?

sql postgresql sql-insert

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

如何使用select查询的输出作为插入查询的输入?

我有以下两张表:-

postgres=# select * from district;
 id |   name
----+-----------
  1 | Ahmedabad
  2 | Barmer
(2 rows)

postgres=# select * from warehouse;
 id | name | district_id
----+------+-------------
(0 rows)
Run Code Online (Sandbox Code Playgroud)

我指的是仓库中的区表。现在我想插入仓库。我正在使用以下查询

postgres=# insert into warehouse
(name, district_id)
values
('Ghodasar-WH', select id from district where name = 'Ahmedabad');
ERROR:  syntax error at or near "select"
LINE 4: ('Ghodasar-WH', select id from district where name = 'Ahmeda...
Run Code Online (Sandbox Code Playgroud)

但它给了我错误,如上所示。为什么我不能在插入查询中使用另一个选择查询的结果,就像我在上面的查询中所做的那样?我认为,我正在做的事情是一个有效的场景。是否存在任何限制,导致其无法成为有效案例?

提前致谢。

sql postgresql sql-insert

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

获取插入的id(node.js + mysql)

当向用户表插入数据时,我尝试获取用户的 id(自动递增 id 字段)。这是我的代码:

  let sql = "INSERT into users(name, date, photo) VALUES ('"+name+"', '"+date+"',  '"+photo+"')";
  connection.query(sql, (err, result) => {
      if(err) {
        //console.log(error);
          res.status(500).json({message: "Invalid Request"});
      } else {
        let inserted_id = result.user_id; // undefined
        console.log(inserted_id);   
        res.status(200).json({message: ""});       
      }
  }); 
Run Code Online (Sandbox Code Playgroud)

当我尝试打印 user_id 时,我得到了未定义的信息。请帮我。

mysql node.js express sql-insert

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

对对象“tablename”、数据库“database_Name”、模式“SampleSchema”的 INSERT 权限被拒绝。在 SQL Server 中

我能够将数据插入表中,现在突然出现此错误,其中标识元素正在使用大的负错误值进行更新,并且插入操作受到限制。

有人可以让我知道问题是什么吗?

sql sql-server sql-insert sql-grant

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

如何用 SELECT 查询的结果覆盖整个表?(MySQL)

通过以下查询,我创建一个表,该表是两个现有表左连接的结果:

CREATE TABLE meal_reservations
SELECT 
    meal.id, 
    meal.max_reservations, 
    SUM(IFNULL(reservation.number_of_guests, 0)) AS reservations
FROM meal
LEFT OUTER JOIN reservation 
ON meal.id = reservation.meal_id
GROUP BY meal.id;
Run Code Online (Sandbox Code Playgroud)

我希望能够SELECT在需要时使用相同的查询更新其值。

我尝试过REPLACE INTO,但这只是将新结果附加到现有行上。

mysql sql select overwrite sql-insert

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

SQL 错误 [8152] [22001]:插入时字符串或二进制数据将被截断

我有一个具有以下结构的 SQL Server 数据库表

CREATE TABLE TableA
(
    [ID] [int] IDENTITY NOT NULL,
    [NAME] varchar NOT NULL,
    [ORDER] [numeric](22, 0) NOT NULL,
    [VALUE] varchar NOT NULL,
    [VNAME] varchar NULL,
    [CREATOR] varchar NULL,
    [CREATION_DATE] datetime2 default CURRENT_TIMESTAMP NULL,
    [MODIF_LAST] datetime2 default CURRENT_TIMESTAMP NULL,

    CONSTRAINT [PK_48_CODES] PRIMARY KEY CLUSTERED(PersonID ASC)
               WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, 
                     IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, 
                     ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

当我尝试执行插入命令时,出现以下错误

SQL 错误 [8152] [22001]:字符串或二进制数据将被截断。

我的插入命令如下

INSERT INTO TableA (CODE_NAME, CODE_ORDER, …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-insert

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