Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL:има ли нещо като вътрешен идентификатор на запис за всеки запис в MySQL таблица?

AFAIK не съществува такъв уникален вътрешен идентификатор (да речем, обикновен идентификатор на ред).

Вие можете може би да можете да стартирате SELECT без никакво сортиране и след това вземете n-тия ред с помощта на LIMIT . При какви условия това е надеждно и безопасно за използване, гуру на mySQL ще трябва да потвърди. Вероятно никога не е така.

Опитайте да поиграете с phpMyAdmin , уеб интерфейсът към mySQL. Той е предназначен да се справя с лошо проектирани маси без ключове. Ако си спомням правилно, използва всички колони, които може да получи в такива случаи:

UPDATE xyz set a = b WHERE 'fieldname'  = 'value' 
                       AND 'fieldname2' = 'value2' 
                       AND 'fieldname3' = 'value3' 
                       LIMIT 0,1;

и така нататък.

Това също не е напълно безопасно за дублиране, разбира се.

Единствената идея, която ми идва на ум, е да добавя ключова колона по време на изпълнение и да я премахна, когато приложението ви е готово. Това е идея, която предизвиква настръхване, но може би по-добре от нищо.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL мистерия:Нулевата стойност не се различава от ненулевия низ

  2. Laravel Carbon Group по месеци

  3. MYSQL - Групиране по лимит

  4. Mysql премахва времевия компонент от datetime

  5. mysql грешка:ГРЕШКА 1018 (HY000):Не мога да прочета директорията на '.' (грешка:13)