Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL] dodawanie kolumny z kluczem
xyxy
post 6.08.2010, 10:59:58
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 22.01.2009

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


Witam,

mam problem z jednym zapytaniem, jak dodać kolumnę z kluczem. Mam tabele w bazie danych z 3 kluczami (opisane pk 1,2,3), a jak próbuje dodać kolumnę, to wyskakuje błąd, że w tabeli może być tylko jeden klucz - teoretycznie chyba prawda.

zapytanie wyglada tak:

  1. ALTER TABLE tti.CONTRACTS ADD TMP varchar(5) PRIMARY KEY


i nie działa, a tabela była tworzona tak:

  1. CREATE TABLE tti.CONTRACTS
  2. (
  3. NAME VARCHAR2(30),
  4. CONTRACT VARCHAR2(40),
  5. RTM_NO NUMBER,
  6. PROC VARCHAR2(10),
  7. SD VARCHAR2(10),
  8. DIR VARCHAR2(60),
  9. PRIMARY KEY(NAME, CONTRACT, RTM_NO)
  10. );


Ten post edytował xyxy 6.08.2010, 11:02:18
Go to the top of the page
+Quote Post
nospor
post 6.08.2010, 11:03:15
Post #2





Grupa: Moderatorzy
Postów: 36 556
Pomógł: 6314
Dołączył: 27.12.2004




Nie klucz, a klucz główny. Tak, w tabeli moze byc tylko jeden klucz główny. Po co ci drugi? Nie mozesz zrobic zwyklego indexu? Musi być klucz główny? No chyba ze ty chcesz miec jeden klucz główny skladajacy się z tych 4 pól.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
xyxy
post 6.08.2010, 11:07:14
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 22.01.2009

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


właśnie o to chodzi, chcę żeby się składał z 4 pól, ponieważ tylko wtedy zachowa unikalność, przy późniejszym dodawaniu danych.

edit: nie może być indexu, według szefa ;/

Ten post edytował xyxy 6.08.2010, 11:09:08
Go to the top of the page
+Quote Post
nospor
post 6.08.2010, 11:08:34
Post #4





Grupa: Moderatorzy
Postów: 36 556
Pomógł: 6314
Dołączył: 27.12.2004




1) usun klucz (drop primary key)
2) utworz pelny klucz na nowo

http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

ps: zakladam ze pracujesz na bazie testowej smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
xyxy
post 6.08.2010, 11:27:55
Post #5





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 22.01.2009

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


Mam do dyspozycji developerską bazę danych Oracla. Dzięki za rade, pomogło (tylko czemu sam na to nie wpadłem ^^), już mi wszystko działa.
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 Wersja Lo-Fi Aktualny czas: 26.04.2025 - 01:22