Autor | Zpráva | ||
---|---|---|---|
Zechy Profil |
#1 · Zasláno: 4. 6. 2013, 18:11:08
Zdravím,
do databáze potřebuju vložit novou vazbu mezi studentem a téamtem ročníkovky, ovšem v případě změny potřebuju ten dotyčný záznam změnit, na což jsem teda chtěl použít Merge. Dotaz vypadá takhle(jsou použity zkušební hodnoty): MERGE INTO vybrane_tema USING vybrane_tema ON(student_id = 4 AND predmet_id = 1) WHEN MATCHED THEN UPDATE SET tema_id = 3 WHEN NOT MATCHED THEN INSERT (student_id, tema_id, predmet_id) VALUES(3, 3, 3); Ovšem ve chvíli, když to spustim zahlásí mi Adminer chybu: Chyba v dotazu (1064): Syntax error near 'MERGE INTO vybrane_tema USING vybrane_tema ON(student_id = 4 AND predmet_id = 1)' at line 1 Chybu se mi nikde nedaří nalézt, netušíte v čem je problém? |
||
ShiraNai7 Profil |
#2 · Zasláno: 4. 6. 2013, 19:05:58
MySQL nezná MERGE. Zkus použít http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
|
||
Zechy Profil |
#3 · Zasláno: 4. 6. 2013, 19:31:15
Tak to bude těžký, na vkládaných hodnotách nemůžu použít key, potřebuju odlišit, jestli se nevkládá stejný student ze stejného předmětu, obojí v tabulce může být duplikátní.
|
||
Kajman Profil |
#4 · Zasláno: 4. 6. 2013, 19:38:37
Zechy:
Můžete udělat unikátní klíč na kombinaci obou sloupců. |
||
Zechy Profil |
Jenže jak student, tak i předmět ale je možné že i téma můžou být duplikátní třeba 50x. Každej student může mít vybrané téma v 10 předmětech, každý předmět může mít 10 studnetů
|
||
Kajman Profil |
#6 · Zasláno: 4. 6. 2013, 20:27:16
Ano, proto nebudete dělat dva indexy na každém se sloupců, ale uděláte jeden unikátní index nad oběma sloupci zároveň.
http://dev.mysql.com/doc/refman/5.5/en/create-index.html |
||
Zechy Profil |
#7 · Zasláno: 4. 6. 2013, 20:30:07
Kajman:
TAkhleee, děkuju :) |
||
Časová prodleva: 11 let
|
0