Pagina 1 di 2

Richiesta Query MySql

Inviato: 08/10/2012, 13:50
da arnold layne
Vi faccio un esempio. Ho ripristinato un database ed è tutto è ok al 99% tranne il campo topic_desc che è rimasto vuoto.

Se eseguo questa query

Codice: Seleziona tutto

INSERT INTO `phpbb_topics` (`topic_id`, `topic_desc`) VALUES
(43763, 'DVD9 1:1');
da errore perchè il topic_id è gia presente.

Come potrei fare a riempiere i topic_desc vuoti con i valori che ho da una vecchia tabella? (il topic_id è sempre il medesimo)

Re: Richiesta Query MySql

Inviato: 08/10/2012, 15:19
da Micogian
Da quello che mi risulta topic_desc non è un campo originale, fa parte di una Mod che aggiunge una descrizione al Title.
A parte questo il comando INSERT aggiunge un record, ovvio che segnali che il topic_id è già presente.
Devi "modificare" un record e questo si fa con UPLOAD

Codice: Seleziona tutto

UPLOAD 'phpbb_topics` SET `topic_desc` = 'DVD9 1:1' WHERE topic_id = '43763';
Attenzione però, controlla che il campo esista, visto che non è un campo originale.

Re: Richiesta Query MySql

Inviato: 08/10/2012, 15:30
da arnold layne
Micogian ha scritto:Da quello che mi risulta topic_desc non è un campo originale, fa parte di una Mod che aggiunge una descrizione al Title.
A parte questo il comando INSERT aggiunge un record, ovvio che segnali che il topic_id è già presente.
Devi "modificare" un record e questo si fa con UPLOAD

Codice: Seleziona tutto

UPLOAD 'phpbb_topics` SET `topic_desc` = 'DVD9 1:1' WHERE topic_id = '43763';
Attenzione però, controlla che il campo esista, visto che non è un campo originale.
installando la mod, il campo è identico ... io dovrei farlo con tutti i topic

esempio

Codice: Seleziona tutto


INSERT INTO `phpbb_topics` (`topic_id`, `topic_desc`) VALUES
(6843, 'DivX, 1CD, MP3 iTA, AVi, Drammatico/Storico'),
(8, 'La distro linux piu completa'),
(10, 'DVD, MuxU, XviD, MP3 ITA, Avi 3 DVD'),
(11, 'DVB, Rip, DivX, Mp3 iTA, AVi, 2 DVD'),
(16796, 'Xvid, 1CD, MP3 Ita, Avi'),
(17, 'Creare copie di backup dei propri DVD'),
(18866, 'DVD, Rip, Xvid, MP3 ITA/ENG, 2 DVD'),
(18867, 'DVB-T, Rip, XVID, MP3 ITA, AVI, 2 DVD'),
(18869, 'XviD, 2 DVD, Mp3 Ita/AC3 Jap, Avi'),
(18870, 'DVD, MuxU, XviD, Mp3 ITA, Avi, 2 DVD'),
(18871, 'DVD, muxU, DivX, MP3 ita/eng, AVI, 2 DVD'),
(18873, '1CD,MP3,AVI.'),
(18875, '1CD, MP3, AVI'),
(18876, ''),
(29574, '(Multimedia) VideoLan Plus (by Fabianator)'),
(18878, 'XviD, 1 CD, Mp3 ITA, AVI'),
(18879, 'DivX, 2CD, MP3 ITA, AVI'),
(18880, '2CD, DVDRIP, XVID, AVI, AC3, commedia, drammatico'),
(18881, '2CD, DVDRIP, XVID, AVI, MP3, Drammatico'),
(18882, '2 CD, XviD,  Ac3 ITA, Avi'),
(18883, '1 CD, DivX, Mp3 ITA, AVI'),
(18884, '769Mb, DVDMux, DivX,  Mp3 Ita/Eng, Avi'),
(18885, '1CD, DVDRip, XviD, Mp3 ITA, AVI'),
(18886, '1 CD, VHSRip, DivX, Mp3 ITA, AVI'),
(26796, '1CD, DVDmUX, AVI, MP3, Fantascienza, Horror, Thriller'),
(18888, '1CD, DVDRip, XviD, Mp3 ITA, AVI'),
(18890, '1CD, DVDRIP, XVID, AVI, MP3, Animazione'),
(18891, 'DVB-T Rip, xvid, MP3 ITA, Avi, 2 DVD'),
(18893, '1CD, DVDRIP, XVID, AVI, MP3, Drammatico'),
(18894, '1CD, DVDRIP, XVID, AVI, AC3, Commedia, Romantico'),
(18895, '2CD, DVDRIP, XVID, AVI, AC3, Commedia'),
(18896, '2CD, DVDRIP, XVID, AVI, AC3, Drammatico'),
(18897, '2CD, DVDRIP, XVID, AVI, AC3, Thriller'),
(18898, ''),
(18899, 'XviD, 1CD, AC3 ENG, HardSUB iTA, AVi, Azione'),
(18900, 'DX50, 1CD, MP3 ENG, HardSUB iTA, AVi, Animazione'),
(18901, ''),
(18902, 'TV-DVB-T, Rip, DivX, MP3 Ita, Avi, 3 DVD'),
(18903, 'ENG - Software per la conversione da PDF a Excel'),
(18904, 'DVB-S, RIP, DivX, Mp3 ITA, AVI, 2 DVD'),
(20012, 'DivX, 1CD, MP3 ITA, AVI'),
(18906, 'DVD5 1.1'),
(29499, ''),

;

Re: Richiesta Query MySql

Inviato: 08/10/2012, 15:42
da Micogian
Tu hai affermato di aver rispristinato il database, ma il campo "topic_desc" c'era nel backup ?
Le strade sono due, o si fa un nuovo INSERT, ma la tabella deve essere vuota o si fa una modifica con UPLOAD, ma questo dipende da quanti records sono da modificare.
Si può anche creare un file che contenga tutti i records da modficare ma ad ogni record ci vuole un UPLOAD

Re: Richiesta Query MySql

Inviato: 08/10/2012, 15:44
da arnold layne
provata la tua query per un singolo topic da errore stringa

Codice: Seleziona tutto

UPLOAD `avphpbb_topics` SET `topic_desc` = 'DVD9 1:1' WHERE `topic_id` = '43763';

Re: Richiesta Query MySql

Inviato: 08/10/2012, 16:10
da Barrnet
Se il backup non ti ha ripristinato quel campo io mi farei qualche domanda sull'integrità del backup e verificherei se è stato caricato tutto.Prova con:

Codice: Seleziona tutto

UPDATE `avphpbb_topics` SET `topic_desc` = 'DVD9 1:1' WHERE `topic_id` = '43763';

Re: Richiesta Query MySql

Inviato: 08/10/2012, 16:13
da Micogian
Errore mio, volevo dire UPDATE, non UPLOAD.

Re: Richiesta Query MySql

Inviato: 08/10/2012, 16:14
da arnold layne
Micogian ha scritto:Errore mio, volevo dire UPDATE, non UPLOAD.
Ora è ok, me ne sono accorto anche io, appena hai risposto. :lol:

Ora viene il bello, per farlo su tutti i topic o almeno una parte per volta?

se faccio cosi

Codice: Seleziona tutto

INSERT INTO `avphpbb_topics` (`topic_id`, `topic_desc`) VALUES
(6843, 'DivX, 1CD, MP3 iTA, AVi, Drammatico/Storico'),
(8, 'La distro linux piu completa'),
(10, 'DVD, MuxU, XviD, MP3 ITA, Avi 3 DVD'),
(11, 'DVB, Rip, DivX, Mp3 iTA, AVi, 2 DVD'),
(16796, 'Xvid, 1CD, MP3 Ita, Avi'),
(17, 'Creare copie di backup dei propri DVD'),
(18866, 'DVD, Rip, Xvid, MP3 ITA/ENG, 2 DVD');
#1062 - Duplicate entry '6843' for key 'PRIMARY'

Non cè modo per non fare riconoscere duplicato?

Re: Richiesta Query MySql

Inviato: 08/10/2012, 17:53
da Micogian
Allora non mi sono spiegato. Dimentica INSERT, a meno che tu non voglia importare nuovamente tutta la tabella.

INSERT serve ad "aggiungere" un record in una tabella.
UPDATE serve a "modificare" un record già esistente.

Se tu hai un backup della tabella che contiene il topic_desc ti conviene importare nuovamente la tabella ma per usare INSERT la tabella deve essere vuota. Ovviamente sempre che tu abbia un backup sql dove devi estrarre solo la tabella topics.
Se devi modificare devi usare necessariamente UPDATE, magari predisponendo un file sql con i dati che vuoi modificare, in sostanza tante righe come quelle messe ad esempio, una per ogni record da modificare.

Re: Richiesta Query MySql

Inviato: 08/10/2012, 18:02
da arnold layne
Micogian ha scritto:Allora non mi sono spiegato. Dimentica INSERT, a meno che tu non voglia importare nuovamente tutta la tabella.

INSERT serve ad "aggiungere" un record in una tabella.
UPDATE serve a "modificare" un record già esistente.

Se tu hai un backup della tabella che contiene il topic_desc ti conviene importare nuovamente la tabella ma per usare INSERT la tabella deve essere vuota. Ovviamente sempre che tu abbia un backup sql dove devi estrarre solo la tabella topics.
Se devi modificare devi usare necessariamente UPDATE, magari predisponendo un file sql con i dati che vuoi modificare, in sostanza tante righe come quelle messe ad esempio, una per ogni record da modificare.
Puoi farmi un esempio? Io una tabella backup topics con i soli topic id e topic desc, la vedi sopra fra il code