作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个名为 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/
我是一名优秀的程序员,十分优秀!