社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

如何将ws primarykey(id)和date合并到同一表的新列中?(MySQL)

J.LOGAN • 5 年前 • 1364 次点击  

我需要在同一个表上使用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|

谢谢!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40711
 
1364 次点击  
文章 [ 1 ]  |  最新文章 5 年前