我需要在同一个表上使用concat ws('-',curdate,id)添加一个名为date_id的新列,id是primarykey和auto_increment。
怎么做?
我试着添加一个专栏并更新了它。它起作用了,但是当我插入一些新行时,错误显示文件'id'没有默认值。
如何解决这个问题?
ALTER TABLE table1 ADD date_id VARCHAR(50);
UPDATE table1 SET date_id = CONCAT_WS('-',date_format(CURDATE(),'%Y%m%d'),id);
更新问题
我已经创建了一个表
USE table_name;
CREATE TABLE IF NOT EXISTS `gzsrieQA`(
`id` INT(3) UNSIGNED ZEROFILL AUTO_INCREMENT,
`record_id` VARCHAR(50),
`date` date,
`pro_name` VARCHAR(50),
`error_info` VARCHAR(255),
`error_describe` VARCHAR(255),
`reason` VARCHAR(255),
`solution` VARCHAR(255),
`solution_file` BLOB,
`solution_file_name` VARCHAR(50),
PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER table_name AUTO_INCREMENT = 001;
UPDATE table_name SET record_id = CONCAT_WS('-','SRIE-DSJ-QA',date_format(CURDATE(),'%Y%m%d'),id);
当我插入一些新数据时,结果显示“record_id”为空。意思是我需要扳机?但问题是,如果我插入大量数据,触发器太慢。如果我不使用触发器,有什么解决方法吗?
例如:
|id|record_id|name|
|-----|-----|-----|
|001| |ABC|
|002| |xyz|
# I want to get:
|id|record_id|name|
|-----|-----|-----|
|001|ABC001|ABC|
|002|xyz002|xyz|
# and when I insert into name=AAA, the result is:
|id|record_id|name|
|-----|-----|-----|
|001|ABC001|ABC|
|002|xyz002|xyz|
|003|aaa003|AAA|
谢谢!