一.备份数据表SQL
CREATE TABLE new_table_日期 (
SELECT *
FROM old_table);
二. 将某个字段通过另一个字段管理表进行更新方法(以更新用户对应的学校为例):
-- 1.先查询出需要更数据,使用INNER JOIN查出的值不影响未关联上的数据
SELECT rdl.FK_USER_ID,su.FK_SCHOOL_ID
FROM table1 rdl
INNER JOIN table2 su ON su.USER_ID = rdl.FK_USER_ID
WHERE rdl.FK_SCHOOL_ID = 0;
-- 使用LEFT JOIN时可以通过关联表的主键ID(AND su.USER_ID IS NULL切记放在最后面)去查出未关联上的数据,便于特殊未关联上的数据处理
SELECT rdl.FK_USER_ID,su.FK_SCHOOL_ID
FROM table1 rdl
LEFT JOIN table2 su ON su.USER_ID = rdl.FK_USER_ID
WHERE rdl.FK_SCHOOL_ID = 0
AND su.USER_ID IS NULL;
-- 2.修改查询语句执行更新操作
UPDATE 需要操作的更新表 rdl
INNER JOIN table2 su ON su.USER_ID = rdl.FK_USER_ID
SET rdl.FK_SCHOOL_ID = su.FK_SCHOOL_ID
WHERE rdl.FK_SCHOOL_ID = 0;
三.SQL时间戳有关
1.针对已经设置了时间戳(DEFAULT CURRENT_TIMESTAMP),但当creatTime和updateTime这两个字段使用null填充时依旧报错说字段不能为空时:
SET session explicit_defaults_for_timestamp = off;
2.查看是否为off;
SHOW VARIABLES LIKE 'explicit_defaults_for_timestamp';