gpt4 book ai didi

sql - 将数据插入到两个表中,将记录链接在一起

转载 作者:行者123 更新时间:2023-11-29 13:24:19 25 4
gpt4 key购买 nike

我正在尝试为用户创建记录。

这是两个表:

CREATE TABLE users
(
id bigserial NOT NULL,
email character varying(254) NOT NULL,
passhash character varying(255) NOT NULL,
email_verified boolean,
time_created integer,
CONSTRAINT users_pkey PRIMARY KEY (id)
)

CREATE TABLE user_info
(
id bigserial NOT NULL,
user_id integer NOT NULL,
first_name character varying(255),
last_name character varying(255),
CONSTRAINT user_info_pkey PRIMARY KEY (id)
)

基本上当一个新用户注册时,我需要添加一条记录到users和user_info。

通常我会单独运行所有查询,如下所示:

首先插入用户:INSERT INTO users (email, passhash, email_verified, time_created) VALUES (...);然后找到最后插入的 id:SELECT id FROM users WHERE email = '$email' AND time_created = '$tm';然后使用我在上次查询中检索到的 id 插入用户:INSERT INTO user_info ...;'

我想知道这是否是一种可接受的方法,我知道一定有更好的方法。

最佳答案

您可以使用returning 子句:

WITH u as (
INSERT INTO users(email, passhash, email_verified, time_created)
VALUES (...)
RETURNING *
)
INSERT INTO user_info(userId, . . . )
SELECT u.id, . . .
FROM u;

关于sql - 将数据插入到两个表中,将记录链接在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36548631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com