PHP Mysql 如何让字段获得与自增id相同的值

标签 php mysql

Possible Duplicate:
MySQL trigger to update a field to the value of id

请我有一个包含三个字段的表:

Id (auto increment)
GroupById
Text

我希望在插入新行时:如果我将字段 groupById 留空,则默认情况下它必须获得与字段 Id 相同的值。

请问您有什么想法吗?提前致谢。

编辑:我的代码:

mysql_query("INSERT INTO group SET GroupById = (must get the current Id), Text = 'bla bla bla' ");

最佳答案

触发器怎么样:

DELIMITER $$
CREATE TRIGGER trg_yourtable
BEFORE INSERT ON yourtable
FOR EACH ROW
BEGIN
  IF NEW.GroupById IS NULL THEN
    SET NEW.GroupById = (
        SELECT AUTO_INCREMENT 
        FROM information_schema.TABLES 
        WHERE TABLE_SCHEMA = DATABASE() 
            AND TABLE_NAME = 'yourtable'
    );
  END IF;
END $$

我不确定这有多安全...或者当您从一个查询插入多行时,或者当两个连接尝试同时插入时会发生什么...但它有效。

关于PHP Mysql 如何让字段获得与自增id相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13849811/

相关文章:

没有 DATABASE_NAME 或 ALGORITHM 的 Phpmyadmin 导出 VIEW

php - 使用 php 运行 linux 程序即命令行?

mysql - 我找不到简单的mysql语句

php - 如何使用 sql 请求动态转换 sql 表中的 dd.mm.yyyy 日期并获取小于

mysql - 确保表构建正确

javascript - 在线用javascript解析json数据

php - 对 MySQL 列和 PHP 数组进行排序

php - yii 从数据库管理配置

php - NOW() 只保存日期,不保存时间

MySQL Case Select 未按预期运行