Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> klucz obcy bez wartości, nowy rekord bez wartości w kluczu obcym
janek
post
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 31.01.2003
Skąd: piękne, czyste, pachnące Katowice

Ostrzeżenie: (0%)
-----


Witam,

Mam dwie tabele, A i B. Tabela A ma kolumnę id, a tabela B ma kolumnę klucz_id, która jest kluczem obcym łączącym ją z tabelą A (czyli B.klucz_id to klucz obcy dla A.id).

Czy da się tak stworzyć te tabele, żeby do tabeli B można było wstawić nowy rekord, który nie będzie zawierał wartości w kolumnie klucz_id (lub będzie null), lub wartość w tej kolumnie nie będzie występować w A.id?

dzięki z góry za pomoc!


--------------------
janek
Go to the top of the page
+Quote Post
basurman
post
Post #2





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 27.02.2005

Ostrzeżenie: (0%)
-----


z tego co mi wiadomo o SQL-u to klucz obcy stosuje się właśnie po to
aby uniemożliwić wszystkie wymienione przez Ciebie działania.
Z drugiej strony rozumie Twój problem i ja w tabelach stosuje
poniższy 'wybieg':
w tabeli potomnej B kolumnie ograniczonej kluczem obcym (klucz_id) ustawiam
wartość domyślną (przy liczbach wypada dać coś <1), która będzie wrzuczna do
wszystkich rekordów, w których to pole jest nie wypełnione;
w tabeli A wpisuje rekord o id równym wspomnianej wartości domyślnej


  1. CREATE TABLE A
  2. (id int PRIMARY KEY, nazwa varchar(15), ...)
  3. TYPE=INNODB;
  4.  
  5. CREATE TABLE B
  6. (klucz_id int <span style="font-weight: bold;">DEFAULT '0' FOREIGN KEY REFERENCES A(id), ...)
  7. TYPE=INNODB;
  8.  
  9. INSERT
  10. INTO A SET <span style="font-weight: bold;">id='0', nazwa='brak danych';
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 19:28