1

我有这个问题:

我想像这样在图像表中插入新行:

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

CONCAT但是当我尝试输入image.id值 ir 每次返回 0时,我的函数做错了。

image.id是自动增量。

4

4 回答 4

1

您可以使用 BEFORE INSERT 触发器 -

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
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

尝试

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

您可以使用 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 回答