对不起,我不是mysql的真正专家。
我有表事务(Trans_ID为PK,但没有自动递增),但是有transactioneq触发自动递增。
在表事务上,我放置了触发器以从表事务中获取Trans_ID
CREATE
DEFINER=`root`@`localhost`
TRIGGER `pos`.`tg_transactions_insert`
BEFORE INSERT ON `pos`.`transactions`
FOR EACH ROW
BEGIN
INSERT INTO transactionseq VALUES (NULL);
SET NEW.ID_Transaction = CONCAT('IDT', LPAD(LAST_INSERT_ID(), 3, '0'));
END$$
并且我有php代码,可将代码插入到我的表中:
if($_SERVER['REQUEST_METHOD']=="POST"){
$response = array();
$ID_Employee = $_POST['ID_Employee'];
$Name_Employee = $_POST['Name_Employee'];
$ID_Customer = $_POST['ID_Customer'];
$Table_Number = $_POST['Table_Number'];
$insert = "INSERT INTO transactions
(ID_Employee,Name_Employee,ID_Customer,Table_Number,ID_Outlet,CreatedBy_Transaction,CreatedDate_Transaction,Status_Transaction)
VALUES ('".$ID_Employee."','".$Name_Employee."','".$ID_Customer."','".$Table_Number."','1','".$ID_Employee."',NOW(),'OPEN')";
if(mysqli_query($con, $insert)){
$last_ID = mysqli_insert_id($con);
$response['value']=1;
$response['message']="Table berhasil dimulai".$last_ID;
echo json_encode($response);
}
else{
$response['value']=0;
$response['message']="Table gagal dimulai";
echo json_encode($response);
}
}
因为我的表事务有一个触发器并且没有自动递增,所以我无法通过使用mysqli_insert_id($ con)获得最后一个Trans_ID。
请提出建议,如何获取我的最后一个插入的Trans_ID?并将该Trans_ID传递给我的flutter应用。
谢谢