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