Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL:czy istnieje coś takiego jak wewnętrzny identyfikator rekordu dla każdego rekordu w tabeli MySQL?

AFAIK nie istnieje taki unikalny identyfikator wewnętrzny (powiedzmy prosty identyfikator wiersza).

możesz może być w stanie uruchomić SELECT bez sortowania, a następnie uzyskaj n-ty wiersz za pomocą LIMIT . W jakich warunkach, które są niezawodne i bezpieczne w użyciu, Guru mySQL musiałby to potwierdzić. Prawdopodobnie nigdy nie jest.

Spróbuj pobawić się z phpMyAdmin , webowy frontend do mySQL. Jest przeznaczony do radzenia sobie ze źle zaprojektowanymi stołami bez kluczy. Jeśli dobrze pamiętam, używa wszystkich kolumny, które może uzyskać w takich przypadkach:

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

i tak dalej.

To oczywiście nie jest całkowicie bezpieczne dla duplikatów.

Jedynym pomysłem, który przychodzi mi do głowy, jest dodanie kolumny klucza w czasie wykonywania i usunięcie jej po zakończeniu pracy aplikacji. To pomysł wywołujący gęsią skórkę, ale może lepszy niż nic.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. android.content.res.Resources$NotFoundException:Identyfikator zasobu ciągu #0x2 Baza danych

  2. SQL INSERT z SELECT

  3. MYSQL ORDER BY CASE Problem

  4. meta_query, jak wyszukiwać za pomocą relacji OR i AND?

  5. Zapytanie MYSQL działa bardzo wolno