извините, я не очень эксперт по 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);
}
}
так как у моей транзакции таблицы есть триггер и нет автоматического увеличения, поэтому я не могу получить последний Trans_ID с помощью mysqli_insert_id($con).
пожалуйста, посоветуйте, как получить мою последнюю вставку Trans_ID? И передать этот Trans_ID моему приложению флаттера.
Спасибо
Если у вас нет auto increment, то LAST_INSERT_ID() ничего не вернет
обратитесь к этому руководству: stackoverflow.com/questions/17893988/…....
я реализовал так же, как автоинкремент с префиксом. в настоящее время я вставляю в таблицу trans, и с автоматическим увеличением Trans_ID триггера с префиксом работает. но мне нужно получить этот последний Trans_ID
я получил новую опцию, я поместил переменную в mysql set @asd = CONCAT('IDT', LPAD(LAST_INSERT_ID(), 3, '0')); как передать mysql variabel @ asd для получения на моем PHP? какой код я должен написать??






Почему у вас не включено автоинкрементирование? Мне просто интересно. И когда вы говорите «последний Trans_ID», это значение Максимум? Или это последний добавленный (максимум столбца
date)? ... Честно говоря, я не уверен, что правильно понял ваш вопрос. Так что, если вы не получите никаких ответов, то другие могут чувствовать то же, что и я, - и тогда разработка или перефразировка вопроса может быть хорошей идеей. :-)