gpt4 book ai didi

照片库的 MySQL 数据库概念

转载 作者:行者123 更新时间:2023-11-29 00:24:45 25 4
gpt4 key购买 nike

我有这张表用来存储照片信息:

CREATE TABLE foto (
id int(11) NOT NULL auto_increment,
id_galerie int(11) NOT NULL,
filename varchar(255) NOT NULL,
sort_nr int(11) NOT NULL default 1,
UNIQUE KEY (id_galerie, sort_nr),
PRIMARY KEY (id)
)

我需要自动递增 sort_nr 列,但仅限于一个 id_galerie。所以我尝试了这个插入查询:

INSERT INTO foto (id_galerie, filename)
VALUES
(1, 'filename'),
(1, 'another filename'),
(1, 'anothername'),
(1, 'another value')
ON DUPLICATE KEY UPDATE sort_nr = sort_nr+1

但它引发了错误(#1062 - 键“id_galerie”的重复条目“1-2”)。如果键不唯一,我如何强制 sort_nr 自动递增?

最佳答案

ON DUPLICATE KEY 检查主键,而不是唯一索引,这就是您看到错误的原因。不确定,甚至没有额外查询也是可能的。但是您可以使用 INSERT INTO SELECT 来做到这一点:

   INSERT INTO foto (filename, id_galerie, sort_nr)
SELECT 'filename', 1, (SELECT IFNULL(max(sort_nr) + 1,1)
FROM foto WHERE id_galerie = 1) AS `SortNumber`

关于照片库的 MySQL 数据库概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19467041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com