-1

所以我需要从源表中插入first_name和last_name,其中行包含来自处理程序的相同uid并插入到recordtable并添加record_time。

cur.execute("""INSERT INTO recordtable (first_name,
last_name,
record_time)
SELECT first_name, last_name 
FROM sourcetable 
WHERE uid is ?""", ("some string from handler"))

这是我能做的最好的,但我仍然需要从处理程序添加record_time到那个执行,怎么做?

这里的表格看起来如何:

CREATE TABLE IF NOT EXISTS sourcetable (
uid TEXT NOT NULL UNIQUE,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL);

CREATE TABLE IF NOT EXISTS recordtable (
id INTEGER PRIMARY KEY,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL,
record_time DATETIME);
4

2 回答 2

0

使用INSERT INTO ... SELECT语句:

INSERT INTO recordtable(first_name, last_name, record_time) 
SELECT first_name, last_name, CURRENT_TIMESTAMP
FROM sourcetable
WHERE uid = ?
于 2021-05-11T19:41:03.217 回答
-1

没关系,我最终发现您可以在 SELECT 运算符中设置预定义值

cur.execute("""INSERT INTO recordtable (first_name, last_name, record_time)
           SELECT first_name, last_name, ? FROM sourcetable WHERE uid is ?;""",
           (datetime.date(datetime.now()), self.__handle_uid))

这是我第一次使用 sql 数据库 for python

于 2021-05-11T21:26:30.803 回答