Вам следует обновить таблицу и сделать соответствующий столбец UNIQUE KEY
, затем попытаться вставить сгенерированную строку, если строки не вставлены, сгенерировать другой ключ и повторить попытку.
ALTER TABLE table_name ADD UNIQUE KEY (column_name);
Приведенный ниже код попытается INSERT
ввести новую строку в table1
, если не удастся, он попытается снова с другим случайно сгенерированным $key
.
IE.запрос не будет выполнен успешно, если col2
имеет ограничение уникального ключа и значение $key
уже существует в столбце.
function generate_random_string () {
$charset = array_merge (
range ('a', 'z'), range ('A','Z'), range ('0','0')
);
shuffle ($charset);
return join ('', array_slice ($charset, 0, 9));
}
/* ....................................................... */
do {
$key = generate_random_string ();
} while (
!mysql_query ("INSERT INTO table1 (col1,col2) VALUES (123, '$key')")
);
Конечно, вы можете использовать свой собственный алгоритм для генерации случайногостроки.
ПРИМЕЧАНИЕ: Убедитесь, что запрос потенциально может быть успешным, чтобы вы не попали в бесконечный цикл.