- 18, May 2024
- #1
У меня есть таблица MySQL. Я должен иметь возможность добавлять уникальные значения INT для скорости, которые не являются столбцом AUTO_INCREMENT.
comp_id всегда равен 1, позиция всегда равна 0, а скорость всегда должна быть MAX(скорость) + 1. Итак, предположим, что я хочу, чтобы скорость была равна 3. Скорость должна быть уникальной.
INSERT INTO ki (comp_id, speed, position) VALUES (1, 3, 0)
Код (SQL): Я хочу вставить новые строки.
comp_id всегда равен 1, позиция всегда равна 0, а скорость всегда должна быть MAX(скорость) + 1. Итак, предположим, что я хочу, чтобы скорость была равна 3. Скорость должна быть уникальной.
CREATE TABLE ki ( id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT , comp_id INT(10) UNSIGNED NOT NULL , speed INT(4) UNSIGNED NOT NULL DEFAULT 0 , position INT(4) UNSIGNED NOT NULL DEFAULT 0 , PRIMARY KEY (id) , UNIQUE INDEX (comp_id, speed, position) , INDEX (comp_id) , FOREIGN KEY (comp_id) REFERENCES competitions (id) ON DELETE NO ACTION ON UPDATE CASCADE ) ENGINE=InnoDB CHARACTER SET latin1 COLLATE latin1_swedish_ci;
Код (SQL): если значение 3 уже существует, я бы хотел, чтобы скорость была равна 4.
Я не хочу изменять существующие строки.
Как я могу сделать это в своем SQL-запросе? Как сказано, скорость должна быть уникальной.