SQL 插入时间戳问题

cphill

我正在尝试将表中两列 ( user_id, team_id) 的值插入usercompany_team. 但是,我在两次不同的尝试中为 mycreated_atupdated_at插入值时company_team遇到错误,并且不知道如何处理它们。

在第一次尝试中,我只是想用user表中等效字段的值更新两个字段:(注意两个表上的列都是 DATETIME)

INSERT INTO `company_team` (`created_at`,`updated_at`,`user_id`, `company_id`)
SELECT `user_id`, `company_id`, `created_at`, `updated_at`
FROM `user` AS `u`
WHERE `u`.`company_id` IS NOT NULL;

错误:

Incorrect datetime value: '1' for column 'created_at' at row 1

然后我尝试在创建记录时只使用当前日期/时间:

INSERT INTO `company_team` (NOW(),NOW(),`user_id`, `company_id`)
SELECT `user_id`, `company_id`, `created_at`, `updated_at`
FROM `user` AS `u`
WHERE `u`.`company_id` IS NOT NULL;

错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOW(),NOW(),`user_id`, `organization_id`)
SELECT `user_id`, `company_id`, `' at line 1
戈登·利诺夫

进行插入时,名称无关紧要。他们是按位置匹配的。

所以,我认为你只需要重新排序列:

INSERT INTO company_team (user_id, company_id, created_at, updated_at)
    SELECT user_id, company_id, created_at, updated_at
    FROM `user` u
    WHERE u.company_id IS NOT NULL;

这会改变INSERT侧面的顺序也许作为习惯,我把创建和更新的日期放在最后——或者通过给它们默认值来自动设置它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章