1

私はその問題を抱えています:

次のように画像テーブルに新しい行を挿入したい:

INSERT INTO image (pr_id, kelias, tipas) VALUES(111111, CONCAT('1111111111', '_', image.id, '.jpg'), '0')

しかし、毎回値 ir return 0CONCATを入力しようとすると、関数に何か問題があります。image.id

image.idオートインクリメントです。

4

4 に答える 4

1

BEFOREINSERTトリガーを使用できます-

CREATE TRIGGER trigger1
  BEFORE INSERT
  ON image
  FOR EACH ROW
BEGIN
  SET NEW.kelias = CONCAT(NEW.kelias, NEW.pr_id);
END
于 2012-09-14T12:11:24.773 に答える
0

試す

INSERT INTO image (pr_id, kelias, tipas)
SELECT 11111, 
       CONCAT('1111111111', '_', max(image.id) + 1, '.jpg'), 
       '0'
FROM image
于 2012-09-14T12:06:06.960 に答える
0
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");
于 2012-09-14T12:12:20.303 に答える
0

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')
于 2020-01-27T10:32:06.047 に答える