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

Ograniczenie w tabeli MYSQL?

Jest kilka rzeczy związanych z dwoma ograniczeniami, które chcesz nałożyć:

  1. Nowo wstawiony wiersz nie może mieć wartości NULL dla kolumny Parent_group.

    • Możesz nałożyć ograniczenie NOT NULL na kolumnę tylko wtedy, gdy zawiera ona wszystkie wartości inne niż null. Potrzebujesz wartości null w tej kolumnie dla węzła głównego.
    • W tym celu możesz użyć ograniczenia CHECK. Przeczytaj więcej o ograniczeniu SPRAWDŹ tutaj .
    • Możesz umieścić

Umożliwi to ustawienie wartości NULL tylko dla węzła głównego i wymusi wartość NOT NULL dla każdego innego wiersza w tabeli.

  1. Dodaj ograniczenie, aby nie można było usunąć wiersza RootGroup.

    • Że już zdefiniowałeś klucz obcy między parent_group i pkey , baza danych automatycznie wymusi integralność referencyjną i zabroni usuwania węzła głównego (lub w tym przypadku dowolnego węzła nadrzędnego). Baza danych zwróci błąd, jeśli zostanie podjęta próba DELETE na dowolnym węźle nadrzędnym lub głównym.
  2. Dla punktu wymienionego w EDYTUJ sekcji, możesz umieścić proste ograniczenie sprawdzające w tabeli, takie jak
    CHECK (parent_group != pkey) . To powinno wykonać zadanie za Ciebie.

Przeczytaj, jak zdefiniować ograniczenia klucza obcego i jak ich używać do wymuszania integralności referencyjnej. Przejdź również przez link, który opublikowałem powyżej lub tutaj zanim zastosujesz te sugestie.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel 8.x Gdzie Json wyszukuje w tablicy

  2. wybierz zapytanie w wordpressie

  3. Uniemożliwić dwóm użytkownikom edytowanie tych samych danych

  4. Jak i kiedy poprawnie używać SLEEP() w MySQL?

  5. INSERT IGNORE zwiększa licznik automatycznego przyrostu, nawet jeśli nie dodano żadnego rekordu?