0
나는 Food라는 이름의 mysql 테이블을 가지고있다. 나는 그것에 560 행을 가지고 ID 열은 모든 행에 대해 null로 설정됩니다. ID-s에 대해 임의의 10 길이의 고유 한 문자열을 생성하려고합니다. 어떻게하면됩니까?기존 데이터베이스에 고유 ID를 생성하려면 어떻게해야합니까?
나는 Food라는 이름의 mysql 테이블을 가지고있다. 나는 그것에 560 행을 가지고 ID 열은 모든 행에 대해 null로 설정됩니다. ID-s에 대해 임의의 10 길이의 고유 한 문자열을 생성하려고합니다. 어떻게하면됩니까?기존 데이터베이스에 고유 ID를 생성하려면 어떻게해야합니까?
가장 간단한 것은 고유성을 보장하는 고유 한 색인과 임의의 char을 생성하는 함수를 만드는 것입니다. 중복으로 인해 삽입이 실패하면 다시 시도하십시오.
CREATE FUNCTION random_char() RETURNS CHAR(1)
RETURN ELT(FLOOR(1 + (RAND() * 62)),
'a','b','c','d','e','f','g','h','i','j','k','l','m',
'n','o','p','q','r','s','t','u','v','w','x','y','z',
'A','B','C','D','E','F','G','H','I','J','K','L','M',
'N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
'0','1','2','3','4','5','6','7','8','9');
CREATE UNIQUE INDEX id_ux ON test (id);
UPDATE test
SET id=CONCAT(random_char(), random_char(), random_char(), random_char(),
random_char(), random_char(), random_char(), random_char(),
random_char(), random_char())
WHERE id IS NULL;
DROP INDEX id_ux on test;
는이 게시물이 당신을 위해 작동 할 수 있습니다 생각 : http://stackoverflow.com/questions/7163275/how-to-add-an-identity-column-to-an-existing-database-table- 큰 마비가있는 – Jean