Autor | Zpráva | ||
---|---|---|---|
tomas2245 Profil |
Zdravím, už dlhšiu dobu premýšľam ako docielim to, že keď mám dve tabuľky ktoré vyzerajú takto:
Prvá tabuľka: ID stĺpec 1 hodnota 2 hodnota2 3 hodnota3 4 hodnota4 Druhá tabuľka: momentálne vyzerá takto: stĺpec ID hodnota hodnota2 hodnota3 hodnota4 a chcem docieliť výsledok takýto: hodnota ID z tabuľky prvej na základe textu stĺpca z tabuľky 1 a 2) stĺpec ID hodnota 1 hodnota2 2 hodnota3 3 hodnota4 4 potrebujem do tej tabuľky kde je práždne ID-čko priradiť ID z prvej tabuľky tam kde je hodnota2 = hodnota 2, hodnota3 = hodnota3 ............ |
||
Alphard Profil |
Update inner join a do podmínky vyjmenovat všechny sloupce. Nicméně tato situace je nějaké divná...
|
||
tomas2245 Profil |
#3 · Zasláno: 8. 5. 2017, 09:06:13
Alphard:
Ďakujem, funguje :) snažím sa dávať svoju štruktúru DB do poriadku lebo ako ID som používal napr. (1.A). ID obsahovala bodky a písmená.. teraz po novom to dávam ako auto increment a to svoje číslo napr. 1.A už mám v samostatnom stĺpci... |
||
tomas2245 Profil |
ešte mam jednu otázočku keď chcem dať:
ALTER TABLE tabulka DROP PRIMARY KEY; funguje ale keď chcem dať potom ALTER TABLE tabulka ADD PRIMARY KEY (stlpec); tak to už nejde nevie niekto prečo? Chyba v dotaze (1062): Duplicate entry '1' for key 'PRIMARY' chcem proste zmeniť primárný klúč na iný stĺpec než bol pred tým.. |
||
Alphard Profil |
#5 · Zasláno: 8. 5. 2017, 11:50:25
Primární klíč musí být na unikátním a not null sloupci. Nemůže tam být vícekrát 1.
|
||
tomas2245 Profil |
a ako mám teda postupovať prosím ťa keď chcem zmeniť primární klúč v existujúcej tabuľke s dátami?
|
||
Alphard Profil |
#7 · Zasláno: 8. 5. 2017, 12:24:51
Upravit hodnoty v daném sloupci tak, aby byly unikátní. Nebo ten klíč definovat nad více sloupci. Nebo tabulka ani nemusí mít primární klíč. Záleží, čeho chceš dosáhnout.
|
||
tomas2245 Profil |
chcem pridať unikátni klúč na stĺpec tovar_id a objednavka_id
primárny je ID s auto incrementom (ktorý by tu asi ani nemusel byť) potrebujem tie unikátne kľúče mať pre tento kód: <?php mysqli_query($pripoj,"INSERT INTO tabulka (objednavka_id, tovar_id, pocet) VALUES ('$objednavka_id', '$tovar_id', '$pocet') ON DUPLICATE KEY UPDATE pocet=pocet+VALUES(pocet)"); ?> |
||
Alphard Profil |
#9 · Zasláno: 8. 5. 2017, 13:07:35
Jestli je id auto increment, tak tam nemohou být duplicity přece. Zřejmě je to pozůstatek z doby, než se tam dal auto increment, ale tak se musí upravit starší data, třeba to přečíslovat. Nebo si najít kombinaci sloupců, která unikátní bude.
|
||
tomas2245 Profil |
Alphard:
už som to vyriešil a sám nechápem ako sa mi to podarilo :D ďakujem za pomoc |
||
tomas2245 Profil |
Alphard:
ešte by ma zajímala jedna vec, keď mám medzi tabuľkami väzbu 1:N tak spojenie vyzerá tak že keď je tabuľka: TABULKA X TABULKA Y tak do TABULKY Y dávam stĺpec x_id je dôležité mať ten stĺpec x_id nastavený ako cudzí kľúč? |
||
Alphard Profil |
#12 · Zasláno: 8. 5. 2017, 17:00:06
Asi by bylo lepší si o tom přečíst něco komlexně. Cizí klíč nemá na samotné spojení tabulek vliv, klasický index ovlivňuje rychlost, pak už je to jedno.
Cizí klíče hlídají integritu dat. Podle nastavení pak např. nejde smazat záznam, na kterém jsou závislé jiné záznamy, nebo se naopak při smazání daného záznamu smažou i ty na něm závislé. Vedlejší výhoda cizích klíčů je, že různé vizualizační nástroje pak dokáží graficky znázornit závislosti. |
||
tomas2245 Profil |
#13 · Zasláno: 8. 5. 2017, 17:04:39
Alphard:
aha, už tomu rozumiem :) ďakujem ti za tvoj čas a vysvetlenie. |
||
Časová prodleva: 7 let
|
0