다음 MySQL의 구문은 제대로 작동합니다INSERT COUNT IF() = 0
SELECT
IF (
(SELECT COUNT(id) FROM preorder) = 0,
1,
(SELECT MAX(id) + 1 FROM preorder)
) AS X
이 나에게 내가 테이블 예약 주문에 삽입 할 하나 개의 값을 제공합니다. 시험해 보면
INSERT INTO preorder (id)
VALUES
(SELECT
IF (
(SELECT COUNT(id) FROM preorder) = 0,
1,
(SELECT MAX(id) + 1 FROM preorder)
) AS X)
더 이상 작동하지 않습니다. MySQL은 단지 menual :-)을 읽도록 지시한다.
구문의 목적은 내 자신의 자동 증분 필드를 생성하는 것이다. 카운트가 0이 아닌 경우 1을, 카운트가 0이 아닌 경우 ID 열의 최대 값을 삽입하려고합니다.
편집
: 더 나은 방법이INSERT INTO preorder (id)
VALUES
(
IF (
(SELECT COUNT(id) FROM preorder AS Y) = 0,
1,
(SELECT MAX(id) + 1 FROM preorder AS X)
)
)
있습니까 : 는 나는 다음과 같은 구문을 사용하여 작동하도록 관리?
왜 자동 증가 필드가 필요합니까? 기존의 문제점은 무엇입니까? 또한 구성표가있는 행을 삭제하면 다음 번에 아무것도 삽입하지 않으면 복제본이 만들어집니다. – kba
더 좋은 방법이 있습니까? 정확히 무엇을 성취하려고합니까? 행 번호를 매기려면'AUTO_INCREMENT'를 다시 작성하지 마십시오. 여기서 최종 목표는 무엇입니까? – Naltharial
Kristian, 나는 약간의 유연성을 원합니다. 왜냐하면 제가 사용하고있는 테이블이 임시 데이터를 저장하는 데 사용되기 때문에 대부분의 데이터는 몇 분 후에 중복 될 것입니다. Naltharial, 나는 ID 번호에 관한 더 많은 유연성을 얻는 방법을 알아 내려고 노력하고 있습니다. 나는이 접근법이 정확하지 않을 수도 있다는 것을 알고 있습니다. 지금은 게시 된 것과 똑같은 더 나은 대체 구문을 찾고 있습니다. – Mark