AFAIK такой уникальный внутренний идентификатор (скажем, простой идентификатор строки) не существует.
Вы можете возможно сможете запустить SELECT
без какой-либо сортировки и затем получить n-ю строку, используя LIMIT
. При каких условиях это надежно и безопасно для использования, MySQL Guru должен подтвердить. Это, вероятно, никогда не бывает.
Попробуйте поиграться с phpMyAdmin , веб-интерфейсом для MySQL. Он предназначен для работы с плохо спроектированными таблицами без ключей. Если я правильно помню, он использует все столбцы, которые он может получить в следующих случаях:
UPDATE xyz set a = b WHERE 'fieldname' = 'value'
AND 'fieldname2' = 'value2'
AND 'fieldname3' = 'value3'
LIMIT 0,1;
и так далее.
Конечно, это не совсем безопасно для дубликатов.
Единственная идея, которая приходит мне в голову, - это добавить ключевой столбец во время выполнения и удалить его, когда ваше приложение будет готово. Это мурашки по коже, но, может быть, лучше, чем ничего.