sql >> Databáze >  >> Database Tools >> SSMS

SSMS povoluje duplicitní záznamy v tabulce, ale ne následné aktualizace

Jediné, co manažerské studio dělá, je poskytnout uživatelské rozhraní, které vám vytvoří nějaké SQL a spustí jej proti DB.

Ve vašem případě pokaždé, když přidáte řádek, vytvoří se příkaz INSERT. To je naprosto platné.

Když jste se poté pokusili pomocí uživatelského rozhraní ODSTRANIT nebo AKTUALIZOVAT jeden záznam ze všech těchto duplicitních záznamů, nebyl k tomu schopen vytvořit SQL. Důvodem je, že na stole nebyl žádný klíč, takže neexistuje způsob, jak vytvořit klauzuli WHERE, která by představovala záznam, který jste se snažili AKTUALIZOVAT nebo VYMAZAT.

Jeho „chybové“ zprávy mi zní naprosto jasně a pravdivě.

Pokud jde o vaše komentáře:

K mému překvapení mi to také umožnilo zadat "hodnotu1" na druhém řádku a zadat dolů - to by nemělo být možné, protože nyní existují dva identické řádky. Nicméně, protože jsem se jen tak bavil, to mi nevadilo.

Je zřejmé, že je to zvláštní a relační teorie, ale bylo mi to vlastně jedno, protože tohle je jen stůl vytvořený k tomu, abych si s ním mohl pohrát.

Není nic špatného na tom mít databázovou tabulku, která umožňuje duplikáty, je to naprosto platná věc, pokud je to to, co potřebujete. Pokud jde o to, že se "nestaráte" nebo "neobtěžujete", že jste povolili duplikáty. V tom je chyba. Tehdy jste si měli uvědomit, že jste zapomněli přidat primární klíč.



  1. Nemohu získat přístup k XAMPP phpMyAdmin; píše:Chyba MySQL řekl:Dokumentace Nelze se připojit:neplatná nastavení

  2. phpMyAdmin nelze spustit na CentOS 6.5 s PHP5.5.8

  3. MySQL Workbench a phpMyAdmin

  4. Co dělají interní vztahy v phpMyAdmin pro tabulky MyISAM?