在Phpmyadmin中创建Concat触发器
我画了一张空白。(咖啡因用完了)。我试图在Phpmyadmin中创建一个触发器,在每行中添加两个字符“MR”。我不希望将字符添加到主id中,而是添加到标记为mer_sku的列中。此外,其他数据也将从html表单添加到此mer_sku col中,因此需要对数据进行压缩 我只是想澄清一下,我试图在phpMyAdminGUI中触发 谢谢 忘记添加我尝试过的内容 第1行出现错误在Phpmyadmin中创建Concat触发器,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,我画了一张空白。(咖啡因用完了)。我试图在Phpmyadmin中创建一个触发器,在每行中添加两个字符“MR”。我不希望将字符添加到主id中,而是添加到标记为mer_sku的列中。此外,其他数据也将从html表单添加到此mer_sku col中,因此需要对数据进行压缩 我只是想澄清一下,我试图在phpMyAdminGUI中触发 谢谢 忘记添加我尝试过的内容 第1行出现错误 尝试在查询部分运行GUI,而不是GUI。 我认为错误是因为mysql处理作为触发器声明的结尾 因此,在为触发器编写代码之前,
尝试在查询部分运行GUI,而不是GUI。 我认为错误是因为mysql处理
代码>作为触发器声明的结尾
因此,在为触发器编写代码之前,请重新定义分隔符
请尝试下面的代码
delimiter |
CREATE TRIGGER `merch_label`
BEFORE INSERT ON `merchandise`
FOR EACH ROW
BEGIN
SET NEW.mer_sku = CONCAT(NEW.mer_sku, 'MR');
END;
|
delimiter ;
所以,让我们先发布我的代码,然后我将解释我的动机和另一个我正试图解决的问题
?php
if (isset($_POST['submit'])) {
$mfr = $_POST['mfr'];
$type = $_POST['type'];
$desc = $_POST['description'];
$price = $_POST['price'];
$qty = $_POST['qty'];
$last_id = 0;
$sql = "SELECT m_id FROM merchandise";
$result = mysqli_query($connection, $sql);
while($row = mysqli_fetch_assoc($result)) {
$last_id = $row["m_id"];
}
$next_id = $last_id+1;
$conc = number_format($next_id/100,2,'-','');
$query = "INSERT INTO merchandise (mfr,type,description,mer_sku,price,qty) ";
$query .="VALUES ('$mfr','$type','$desc','MR{$mfr}{$conc}','$price','$qty')";
$add_sku_query = mysqli_query($connection, $query);
confirmQuery($add_sku_query);
$alert = <<<DELIMETER
<div class='alert alert-warning alert-dismissible fade in' role='alert'>
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<strong>Inventory Updated!</strong> <a href='inventory.php?view_all_inventory'>View All Inventory</a>
</div>
DELIMETER;
echo $alert;
}
?>
我希望我能解释我的想法。无论如何,这是我目前的状态,我正在努力创造我所需要的解决方案
希望这对任何人都有所帮助,或者如果有人有一些有用的意见,那将是非常好的,非常感谢。谢谢 如果您不显示您尝试的内容,我们无法帮助您修复代码。所以这不是免费的编码服务。我忘记添加屏幕截图了(SET NEW.mer_sku=CONCAT(NEW.mer_sku,'MR')
谢谢。但是,我得到了一个语法错误代码。#1064?不确定语法错误在哪里。您在行的末尾有;
?这仍然不起作用。我继续得到一个错误。无法识别的语句类型。(在位置29的“BEFORE”附近)或者我会收到此错误。您的SQL语法有错误;请检查与您的MariaDB服务器版本对应的手册,以了解第8行“END”附近使用的正确语法。但是,触发器函数不起作用。我做了一些更改,我能够使代码正常工作。在此过程中,我发现了另一个问题。我将更新此帖子发现了类似的问题。但是,这是使用MyISAM DB引擎并自动递增主键,我不想这样做。因此基于链接的问题。我要查找的结果接近于此。
**CURRENT AUTO INCREMENT, [NOT WHAT I WHAT]**
MR500-01
MR600-02
MR700-03
MR500-04
MR600-05
MR700-06
**IDEAL AUTO INCREMENT, [WHAT I WANT]**
MR500-01
MR600-01
MR700-01
MR500-02
MR600-02
MR700-02