gpt4 book ai didi

mysql - 如何使用触发器(MySQL)在插入时更改同一表的字段值

转载 作者:行者123 更新时间:2023-12-04 10:43:08 24 4
gpt4 key购买 nike

我有一个“example_table”,它有几个字段。当 example_field='Faiyaj' AND example_field_two Like '096%' 然后我想设置 example_field = 'Faiyaj11' 时,我想更改插入到同一个表中的 'example_field' 值。

这是我的迁移表(UP 函数):

public function up()
{
$this->create('example_table', function (Blueprint $table) {

$table->bigIncrements('id');
$table->integer('user_id')->unsigned();
$table->text(description, 1600);
$table->string('example_field');
$table->string('example_field_two');
$table->timestamp('created_at');

});


$insertTrigger = "CREATE TRIGGER example_table_generator_insert AFTER INSERT ON example_table
FOR EACH ROW
BEGIN
IF EXISTS(SELECT * FROM example_table WHERE example_field='Faiyaj' AND example_field_two Like '096%') THEN
UPDATE `example_table` SET `example_field` = 'Faiyaj11';
END IF;
END;
";


$this->unprepared($insertTrigger);

}


我在迁移表中使用了上述触发器,但它不起作用,也没有在数据库中插入任何值。我曾以多种方式尝试过触发器,但都失败了。 (插入前/插入后)

最佳答案

我今天已经解决了这个问题。这是解决方案:

$insertTrigger = "CREATE TRIGGER example_table_generator_insert BEFORE INSERT ON example_table
FOR EACH ROW IF NEW.example_field = 'Faiyaj' AND NEW.example_field_two LIKE '096%' THEN SET NEW.example_field = 'Faiyaj11';
END IF;";

$this->unprepared($insertTrigger);

关于mysql - 如何使用触发器(MySQL)在插入时更改同一表的字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59839473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com