gpt4 book ai didi

MySQL:有没有办法将值从一个表插入到另一个表?

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

我创建了一个名为 employee 的表

CREATE TABLE employee(
id INT,
name VARCHAR(50),
credit_card_number VARCHAR(20),
expr_date CHAR(6),
PRIMARY KEY(id)
)

然后我有一个存储信用卡信息的表

CREATE TABLE credit_card (
credit_card_number VARCHAR(20),
expr_date CHAR(6),
o_datetime DATETIME
)

我想编写一个插入语句,将每个员工当前存储的信用卡信息插入到我的新信用卡表中。我还想用当前日期时间填写我的 o_datetime

这就是我最初的处理方式,但我不确定我这样做是否正确..

INSERT INTO credit_card(credit_card_number, expr_date, CURRENT_TIMESTAMP AS o_datetime)
SELECT credit_card_number, expr_date
FROM employees;

但是当我运行它时出现错误。我真的是 SQL 的新手,所以我可能会错过一个简单的步骤,但我似乎无法弄清楚。

最佳答案

首先,您永远不应在数据库中存储未加密的信用卡号。这是邀请某人“借用”号码。您可以对它们进行哈希处理或以其他方式存储它们以防止未经授权的访问。

您的语句的问题是 o_datetime 组件。默认值可以放在 select 语句中:

INSERT INTO credit_card(credit_card_number, expr_date, o_datetime)
SELECT credit_card_number, expr_date, CURRENT_TIMESTAMP
FROM employees;

但是,如果您始终希望这是插入数据的日期,则可以将其设置为默认值:

CREATE TABLE credit_card (
credit_card_number VARCHAR(20),
expr_date CHAR(6),
o_datetime DATETIME default CURRENT_TIMESTAMP
)

然后你可以这样做:

INSERT INTO credit_card(credit_card_number, expr_date)
SELECT credit_card_number, expr_date
FROM employees;

请注意,在旧版本的 MySQL 中,o_datetime 需要是一个时间戳

关于MySQL:有没有办法将值从一个表插入到另一个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28931814/

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