Topic: Pubblico - Composto da 10 Posts di 2 Utenti.
| 19 Luglio, 2010 09:38 | #1 | ||
|---|---|---|---|
|
Salve ragazzi, io ho il seguente problema:
Codice :
CREATE TRIGGER triggeridcat AFTER INSERT ON jos_vm_product FOR EACH ROW DECLARE a NUMBER; BEGIN SELECT category_id INTO x FROM jos_vm_category WHERE category_name=:NEW.attribute;UPDATE jos_vm_product_category_xref SET category_id=x WHERE product_sku=:NEW.product_sku; END;
ma mi rileva errore di sintassi...
Ultima modifica 19 Luglio, 2010 09:40 di lasslo |
|||
| 19 Luglio, 2010 11:06 | #2 | ||
|---|---|---|---|
|
Ciao lasslo Benvenuto su MySQL Italia,
allora a occhio vedo un paio di errori di sintassi
la riga DECLARE a NUMBER; devi inserirla dopo BEGIN poi SELECT category_id INTO x FROM jos_vm_category WHERE category_name=:NEW.attribute; questo INTO non sintassi della select ma della INSERT
e poi :NEW.attribute ? di cosa si tratta ?
In una select mi è nuovo, però potrei sbagliarmi, dimmi tu
saluti algweb
Un tempo ero algweb ora sono g2d |
|||
| 21 Luglio, 2010 09:17 | #3 | ||
|---|---|---|---|
|
Ciao, grazie di aver risposto. Mi stai dicendo che il codice esatto è:
CREATE TRIGGER triggeridcat AFTER INSERT ON jos_vm_product FOR EACH ROW BEGIN DECLARE a NUMBER; SELECT category_id INSERT INTO x FROM jos_vm_category WHERE category_name=attribute;UPDATE jos_vm_product_category_xref SET category_id=x WHERE product_sku=product_sku; END; |
|||
| 21 Luglio, 2010 09:26 | #4 | ||
|---|---|---|---|
|
No assolutamente, Questa query è sbagliata SELECT category_id INSERT INTO x FROM jos_vm_category WHERE category_name=attribute;
Saluti algweb Un tempo ero algweb ora sono g2d |
|||
| 21 Luglio, 2010 10:33 | #5 | ||
|---|---|---|---|
|
Ho bisogno di importare un CSV . Con l'import di questo CSV viene creata una tabella tra i quali campi ci sono IDprodotto e NOMEcategoria. Nel database è presente un'altra tabella nella quale sono presenti i campi IDcategoria e NOMEcategoria. Ad ogni NOMEcategoria è assegnato un valore numerico univoco nel campo IDcategoria. Esiste anche una tabella nella quale ad ogni IDprodotto (valore univoco) è accostato un IDcategoria (in un'altra colonna della stessa tabella). il campo IDcategoria in questa tabella è vuoto dato che non è presente nel CSV. Quello che mi serve è riempire il campo IDcategoria di quest'ultima tabella con il valore numerico che corrisponde a quello che è presente nella tabella che associa il nome della categoria ad un numero. In pratica mi serve che il trigger: -legga il campo NOMEcategoria del CSV -lo confronti con il campo NOMEcategoria della tabella con IDcategoria e NOMEcategoria -prenda il valore IDcategoria e lo inserisca nel campo vuoto della tabella IDprodotto e IDcategoria nella riga che corrisponde al prodotto di turno (andando a confrontare il campo IDprodotto con lo stesso presente nel CSV) Saluti Lorenzo Sinisi |
|||
| 21 Luglio, 2010 13:34 | #6 | ||
|---|---|---|---|
|
Ciao Lassio
Se ho capito bene in effetti devi fare qualcosa del genere
UPDATE Tabella_prodotti SET IdCategoria= (SELECT IdCategoria FROM Tabella_prodotti AS A JOIN Tabella_Categ AS B ON A.NomeCategoria = B.NomeCategoria order by IDProdotto desc LIMIT1 )
che ne pensi ?
Fammi sapere e Grazie
Saluti algweb Un tempo ero algweb ora sono g2d |
|||
| 22 Luglio, 2010 09:54 | #7 | ||
|---|---|---|---|
|
Ciao algweb
Grazie della risposta ma credo che ci sia un errore nella tua formula. Potresti spiegarla verbalmente? Così posso dirti dove penso sia sbagliata. |
|||
| 22 Luglio, 2010 18:30 | #8 | ||
|---|---|---|---|
|
Ciao lassio,
certo, scusami se non sono stato velocissimo nella risposta.
In effetti io faccio l'update del solo campo IDCATEGORIA della tabella prodotti e lo faccio uscire selezionandolo dalla join TabProdotti e TabCategorie. Sulla record della tabella prodotto che prendi dal CSV c'è il nome della categoria o sbaglio ? L'ordinamento desc mi serve per prendere l'ultimo prodotto, e limito a 1 per prenderne uno solo .... che ne pensi ? Se pensi che non funzioni passami le 2 create table e un paio di righe del csv così posso fare delle prove.
Ho visto che hai provato gravatar.... è un servizio straordinario..
Fammi sapere
saluti algweb
Un tempo ero algweb ora sono g2d |
|||
| 26 Luglio, 2010 09:09 | #9 | ||
|---|---|---|---|
|
Ciao Algweb, mi scuso per il ritardo nella risposta ma sono stato fuori città nel weekend. Ecco il file .zip contentente il file sql con le tre tabelle in questione. http://hotfile.com/dl/57594953/d80bfd0/database.rar.html
saluti Lorenzo Sinisi
|
|||
| 26 Luglio, 2010 19:23 | #10 | ||
|---|---|---|---|
|
Ciao Lassio, Stai tranquillo per il ritardo, spero che tu ti sia divertito nel week end, le ferie ormai sembrano vicine.... finalmente!!! Andiamo alla nostra query, beh io ho scaricato il DUMP e restorato le 3 tabelle, però ho da farti due osservazioni:
La prima riguarda i precedenti post, mi dicevi di una tabella3: id-prodotto e nome-categoria ma in effetti non c'è.
Con questa query appunti dovresti recuperare tutti i campi, compreso product_id e nomecateg delle categorie presenti in jos_vm_category, il problema è che quelle categorie non corrispondono a quelli della tabella di associazione jos_vm_product_category_xref, quindi magari non ti accorgerai mai che stai facendo bene la query. Dimmi tu a questo punto come vuoi procedere, se ritieni, possiamo anche popolare la tabella con dati esempio, corretti. Grazie, saluti algweb
Un tempo ero algweb ora sono g2d |
|||
Condividi su:
Loggati o Registrati per replicare