私はその問題を抱えています:
次のように画像テーブルに新しい行を挿入したい:
INSERT INTO image (pr_id, kelias, tipas) VALUES(111111, CONCAT('1111111111', '_', image.id, '.jpg'), '0')
しかし、毎回値 ir return 0CONCAT
を入力しようとすると、関数に何か問題があります。image.id
image.id
オートインクリメントです。
BEFOREINSERTトリガーを使用できます-
CREATE TRIGGER trigger1
BEFORE INSERT
ON image
FOR EACH ROW
BEGIN
SET NEW.kelias = CONCAT(NEW.kelias, NEW.pr_id);
END
試す
INSERT INTO image (pr_id, kelias, tipas)
SELECT 11111,
CONCAT('1111111111', '_', max(image.id) + 1, '.jpg'),
'0'
FROM image
mysql_query("INSERT INTO image (kelias, tipas) VALUES('anything', '0')");
$img_id = mysql_insert_id();
$kelias = '1111111111' . '_' . $img_id . '.jpg';
mysql_query("UPDATE image SET kelias='$kelias' WHERE pr_id = $img_id");
BEFORE INSERT トリガーを使用できます-
CREATE TRIGGER trigger1
BEFORE INSERT
ON image
FOR EACH ROW
BEGIN
SET NEW.kelias = CONCAT( NEW.kelias , '_',
(SELECT AUTO_INCREMENT
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = "<your database name here>"
AND TABLE_NAME = "image" )
, '.jpg');
END
そして、次の方法で目的の結果を取得します。
INSERT INTO image (pr_id, kelias, tipas) VALUES(111111, '1111111111', '0')