sql >> Database >  >> RDS >> Mysql

MySQL:bestaat er zoiets als een interne record-ID voor elk record in een MySQL-tabel?

AFAIK bestaat niet zo'n unieke interne identifier (bijvoorbeeld een eenvoudige rij-ID).

Je mag misschien een SELECT . kunnen uitvoeren zonder enige sortering en verkrijg dan de n-de rij met een LIMIT . Onder welke omstandigheden dat betrouwbaar en veilig is om te gebruiken, zou een mySQL-goeroe moeten bevestigen. Dat is het waarschijnlijk nooit.

Probeer te spelen met phpMyAdmin , de web-frontend voor mySQL. Het is ontworpen om slecht ontworpen tafels zonder sleutels aan te kunnen. Als ik het me goed herinner, gebruikt het alles kolommen die het in dergelijke gevallen kan krijgen:

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

enzovoort.

Dat is natuurlijk ook niet helemaal duplicaatveilig.

Het enige idee dat in me opkomt, is om tijdens runtime een sleutelkolom toe te voegen en deze te verwijderen wanneer je app klaar is. Het is een kippenvel-opwekkend idee, maar misschien beter dan niets.



  1. Tools integreren om PostgreSQL in productie te beheren

  2. De resultaten van een query e-mailen in SQL Server (T-SQL)

  3. Stel de tekenset en sortering van een kolom in MariaDB in

  4. FieldShield SDK