如何在两列中使用自动增量值

桑托什

我有一个用户投诉表,其中两列指定每个投诉行的 ID

`complaint_id` MEDIUMINT UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
`complaint_code` VARCHAR(20) NOT NULL ,

我想如果用户提供complain_code 那么它将被正常插入并且complaint_id 具有其AUTO_INCREMENTED 值,但是如果用户跳过填充complain_code 字段而不是它也由complain_id 的AUTO_INCREMENTED 值填充,与complaint_id 相同。

我可以使用 Insert then Update 语句来完成,但我只想使用单个 insert 语句。

我不知道该怎么做,请帮忙。我正在使用 mysql、PDO、php

2MAS

如果您使用 MySQL 触发器,这并不太难。

触发器可以设置为在表中完成 INSERT 后立即自动执行,它会检查 comaplain_code 是否为空。如果它为空,也将使用complain_id 的下一个自动增量值作为comaplain_code:

通过运行以下命令创建触发器:

DELIMITER $$
CREATE TRIGGER update_complain_code
BEFORE INSERT ON `user_complaints` FOR EACH ROW
begin
    DECLARE next_id INT;
    SET next_id = (SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='user_complaints');

    IF NEW.complaint_code is NULL OR NEW.complaint_code = ''
    THEN
        SET NEW.complaint_code=next_id;
    END IF;
END;
$$
DELIMITER ;

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在SQL Server中使用自动增量添加主键列

如何在Sails-Mongo中使用自动增量

如何在Tarantool中使用自动增量索引?

如何在matlab中使用增量列和固定列

如何在oracle数据库中使用字符串创建TRIGGER列ID自动增量?

如何在SQL Server中使用字符和数字(如字母数字)创建自动增量列?

如何迁移使用主键和自动增量值的两个数据库SQL 2008 R2

如何使用基于列的增量值更新记录

如何在Flask的SQLAlchemy中使用自动增量主键创建关联表?

在插入触发器之前在MYSQL中使用自动增量值?

如何在laravel中使用增量函数

如何在SonarQube中使用增量模式?

如何在等式中使用增量

如何在vb.net 2010中的Insert语句后获取自动增量值

如何在postgresql中为触发器插入自动增量值?

如何在MySQL中将自动增量值设置为从1开始?

如何在弹性搜索中为字段创建自动增量值

在Oracle中使用自动增量列从表创建视图

在sqlite java android上从中删除1行列后如何重置自动增量值?

如何使用会话在文本框中显示自动增量值

如何在句子的熊猫列中使用自动更正

如何在SQL Server中重置自动增量列

如何在 hive 插入分区语句中使用 UDF 值或列值,而不是常量值

在PHP中使用for循环在特定时间间隔后如何获取增量值?

合并两个相同的 MySQL 数据库表,这些表对 customer_id 使用自动增量值

如何在带有增量值的Pyspark中的DataFrame中添加列?

如何将自动增量值添加到领域

如何在两列的postgres中使用ILIKE

如何在SQL Server中使用别名添加两列?