duplicare dei record

ric@66

Nuovo Utente
1 Nov 2011
17
0
0
Un saluto a tutti ,il mio problema e' il seguente ho un db mysql con una tabella lettura dove al suo interno ci sono delle colonne tra cui la colonna data,ora avrei la necessita di popolare questa colonna con dei valori ,ma il problema e che sono ripetitivi e quindi con il comando INSERT mi da' errore ,provo a fare un esempio per rendere meglio l'idea.
dati da importare
20111023
20111023
20111023
20110820
20110820
e cosi via ,ogni data e' ripetuta piu' volte
Grazie per l'attenzione
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
domande:
i record esistono di già e tu devi aggiungere/modificare la data o i record non esistono e quindi devi crearli inserendo la data?
che tipo di errore ti da?
eventualmente posta la tabella e il codice di insert
 

ric@66

Nuovo Utente
1 Nov 2011
17
0
0
ciao dunque i record li ho in formato sql dopo aver effettuato un dump di un altro db ora li devo inserire cosi come sono su un altro computer con stessa tabella lettura e stesso campo data (il campo attualmente e' privo di record ) i record sono all'incirca 46000 ma avendo la data ripetitiva su piu' record mi da' un errore di ad esempio:
Duplicate entry '20111021-000000-0' for key 'PRIMARY'
e quindi questo valore lo inserisce solo una volta invece che 300
La chiave e' Primaria pensate che possa risolvere questo problema??
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se il campo è key 'PRIMARY' può contenere solo valori unici. sei sicuro che nel db originale sia primary key?
poi perchè tramite myadmin non esporti il tutto in formato sql (o csv) e poi non lo importi dove ti serve?
 

ric@66

Nuovo Utente
1 Nov 2011
17
0
0
Ciao giustamente mi fai delle domande legittime perche avendola impostata cosi non si capisce molto ,allora il sistema e' il seguente questi pc hanno la funzione di immagazzinare le letture di sensori di temperatura pertanto ogni 15 minuti il sensore invia delle letture dove il pc le immagazzina in un db con la tabella letture ed al suo interno i seguenti campi IDS-DATA-ORA-TEMPERATURA-UMIDITA' pertanto un sensore nello stesso giorno mi inviera' numerose letture,fin qui tutto ok,il problema nasce perche prima di questa struttura avevamo un'altro sistema che aveva la tabella letture con al suo interno i seguenti campi
IDS-DATAORA-TEMPERATURA-UMIDITA' e avendo la necessita' di importare i vecchi dati su la nuova macchina ho fatto i seguenti passaggi:
avendo necessita' di modificare i dati dela colonna dataora da 2011-10-31 10.23:22 in 20111031 ho eseguito il seguente comando da phpMyAdmin
SELECT (
replace( left( lettura.data, 10 ) , '-', '' )
)
FROM lettura
a quel punto mi ritrovavo solo la data come volevo io e pronta ad inserirla nella nuova colonna DATA con il comando INSERT ma naturalmente mi genera questo errore.
Che sia una key primary lo vedo se faccio un dump del nuovo db e mi scrive primary key potrebbe essere che associa la data al valore di un'altra colonna tipo IDS e quindi avendo IDS che si incrementa ad ogni inserimento lui ignora le date doppie???(se ho detto una stupidagine fai finta di non aver letto)
Scusa la lungagine e spero di essermi fatto capire ti ringrazio per l'attenzione
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
servirebbe non solo il nome dei campi della tabella, ma la struttura.
da quello che ho capito hai una vecchia tabella del tipo
IDS-DATA-ORA-TEMPERATURA-UMIDITA
dove (credo)
IDS //id del record: formato: int(230) autoincrement primary key
DATA //data: contenente 2011-10-31 formato? date?
ORA //ora: contenente 23:22 formato?
TEMPERATURA //questi ultimi due immagino che siano float (?)
UMIDITA
che vuoi trasferire in una nuova tabella che dovrebbe essere:
IDS //id del record: formato: int(230) autoincrement primary key
DATAORA //data: contenente 20111031 formato? e l'ora? cioe 201110312322 ?
TEMPERATURA //questi ultimi due immagino che siano float (?)
UMIDITA
è così?

e vuoi trasferire i dati dalla vecchia alla nuova?
inoltre: lavori in php?
 

ric@66

Nuovo Utente
1 Nov 2011
17
0
0
appena a casa proverò a postare la struttura dei campi sia vecchi che nuovi ,confermo lavoro in php ,ciao a presto
 

ric@66

Nuovo Utente
1 Nov 2011
17
0
0
Allora spero di fare le cose fatte bene e quindi parto dalla macchina vecchia
dove abbiamo una tabella di nome

LETTURA
CREATE TABLE IF NOT EXISTS `lettura` (
`ID_Lettura` int(11) NOT NULL AUTO_INCREMENT,
`Data` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`DataRx` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`IDS` int(11) NOT NULL DEFAULT '0',
`temp` double NOT NULL DEFAULT '0',
`umid` double NOT NULL DEFAULT '0',
`rugiada` double DEFAULT '999999999',
`descrizione` text,
`max` text NOT NULL,
`min` text NOT NULL,
PRIMARY KEY (`ID_Lettura`),
KEY `IDS` (`IDS`),
KEY `Data` (`Data`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=336481 ;

ho fatto un DUMP puo' andare bene? di seguito riporto un record di lettura

ID_Lettura Data DataRx IDS temp umid rugiada descrizione max min
1 2010-05-10 15:12:11 2010-05-10 15:13:02 1 25.23 47.71 13.35 Sensore 1 24/055/100

ID_Lettura c'e' un numero progressivo che aumenta con l'inserimento di ogni lettura
DATA e' la data e ora di lettura inviata dal sensore
IDS e' associato al sensore installato se ho 3 sensori, avro' IDS=1 IDS=2 IDS=3
TEMP valore temperatura
UMID valore umidità
RUGIADA valore rugiada
DESCRIZIONE e' il nome associato al sensore tipo sensore cucina
MAX e MIN sono dei valori che vengono impostati come valore di lettura max e min

MACCHINA NUOVA
nome tabella..............LETTURA

CREATE TABLE IF NOT EXISTS `lettura` (
`gio` int(8) NOT NULL,
`ora` int(6) unsigned zerofill NOT NULL,
`ids` int(3) NOT NULL,
`temp_0` float NOT NULL,
`umid_0` float NOT NULL,
`dewp_0` float NOT NULL,
`temp_1` float NOT NULL,
`temp_2` float NOT NULL,
`temp_3` float NOT NULL,
`umid_1` float NOT NULL,
`umid_2` float NOT NULL,
`umid_3` float NOT NULL,
PRIMARY KEY (`gio`,`ora`,`ids`),
KEY `gio` (`gio`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

GIO equivale alla data di lettura
ORA equivale all ora di lettura
IDS numero di sensore
TEMP_0 valore di lettura temperatura
umid_0 valore di lettura umidità
DEWP_0 valore di calcolo rugiada
TEMP 1-2-3- valori temperatura min media max impostati
UMID 1-2-3- valori umidità min media max impostati

di seguito riporto un record di una lettura su macchina nuova

gio ora ids temp_0 umid_0 dewp_0 temp_1 temp_2 temp_3 umid_1 umid_2 umid_3
20110117 092302 1 19.19 42.58 6.16 18 22 3 40 55 3

spero di non aver fatto una cretinata perche' non so' se era quello che serviva bbbooooohhhhh:confused:
 

ric@66

Nuovo Utente
1 Nov 2011
17
0
0
invio nuovamente esempio di una lettura vecchia e nuova messe in ordine
VECCHIA

ID_Lettura........1
Data................2010-05-10 15:12:11
DataRx.............2010-05-10 15:13:02
IDS..................1
temp................25.23
umid.................47.71
rugiada.............13.35
descrizione........Sensore 1
max min............24/055/100

NUOVA

gio.......20110117
ora.......092302
ids........1
temp_0..19.19
umid_0...42.58
dewp_0..6.16
temp_1..18
temp_2..22
temp_3..3
umid_1..40
umid_2..55
umid_3..3
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
l'errore, secondo me, è propio nella tabella nuova PRIMARY KEY (`gio`,`ora`,`ids`),

CREATE TABLE IF NOT EXISTS 'lettura' (
'gio int(8) NOT NULL,
'ora' int(6) unsigned zerofill NOT NULL,
'ids' int(3) NOT NULL,
ecc......
PRIMARY KEY ('gio','ora','ids'),
KEY 'gio' ('gio')
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

io la farei così

CREATE TABLE IF NOT EXISTS `lettura` (
'id' int(11) NOT NULL AUTO_INCREMENT, //questo è l'id del record
'gio' int(8) NOT NULL,
'ora' int(6) unsigned zerofill NOT NULL,
'ids' int(3) NOT NULL,
'temp_0' float NOT NULL,
ecc.....
PRIMARY KEY ('id'),
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

se poi ha bisogno anche di aiuto per lo script di trasferimento, essendo più un problema di php che di mysql, apri un post nella sezione php
 
Discussioni simili
Autore Titolo Forum Risposte Data
L non duplicare dati in stato "aggiornamento" PHP 6
max_400 Duplicare uno stupido file .txt aggiungendo un numero PHP 9
A [VB] duplicare un file Visual Basic 8
T come ordinare dei record recuperati da due tabelle MySQL 0
C Creare Tabella Dati Meteo prelevandoli da dei Tags in un altro foglio PHP 27
C prendere dei valori da Plugin e inserirli nel database joomla Joomla 0
otto9due Impedire esecuzione diretta dei file PHP 7
seranto Blocco preventivo e Registro dei Consensi per Cookie tecnici? Leggi, Normative e Fisco 2
F Scrivere dei dati in word con php PHP 0
M Problemi con la stampa dei valori in php PHP 1
L Ricezione dei dati su file php da modulo html PHP 6
G Somma dei Minuti PHP 3
W Elenco dei link del file presenti in una cartella PHP 2
C Esclusione dei giorni festivi Javascript 0
W Evitare ridondanza dei dati Classic ASP 3
I Passare dei parametri in javascript PHP 0
G Scelta dei Breakpoint HTML e CSS 1
D Javascript per il download dei dati Javascript 0
G MariaDB non restituisce dei valori PHP 7
J estrarre url dei file video da youtube "get_video_info" PHP 6
MarcoGrazia [PHP] Uso dei namespace PHP 5
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
W [WordPress] [WooCommerce] Non trovo più la Tab Visulizzazione dei Prodotti in questo nuovo Plugin WordPress 2
L Trasferimento dei file OLM Mac in formato PST sul sistema Mac Mac e Software 1
W [Javascript] Bootstrap Admin templates, mi dareste dei consigli? CMS (Content Management System) 0
maxnegri Sommare i prezzi dei prodotti aggiunti al carrello di diverse aziende con Select sum php mysqli PHP 10
spider81man [PHP] Pulsante SUBMIT per download diretto dei file PHP 9
C Creazione di una funzione per il filtraggio dei campi di un db Presentati al Forum 0
A [PHP] Generare nomi dei file con lettere minuscole e vocali senza accenti PHP 2
S Visibilità dei like dei propri amici su Facebook Social Media Marketing 2
G [HTML] Modificare ordine dei div in mobile responsive HTML e CSS 5
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
MarcoGrazia [PHP] Percorso dei file PHP 3
M New entry nel mondo dei DB Presentati al Forum 1
M [PHP] Aggiornare i dati dei record selezionati PHP 3
F Autocompletamento dei campi di una pagina jQuery 4
cristoforo58 Stampare dei valori XML in PHP PHP 0
xone [PHP] Contare numero dei giorni tra data_in e data_out PHP 11
V Indicizzazione dei contenuti Google Search Console 0
felino [WordPress] Override dei files del theme attivo WordPress 3
E [PHP] [HTML] Codice che gestisce l'input e la trasmissione dei dati alla mia email PHP 1
KILLERIX Sicurezza dei database nei siti web Database 2
ecosito [WordPress] Visualizzare una mappa con i pin dei post tramite GPS? WordPress 4
R [Photoshop] Modificare luminosità dei bordi in una foto Photoshop 2
borgo italia scelta dei colori di background e colori di contrasto Snippet PHP 1
M riga dei sottomenù in php? PHP 2
BullNoir [Compro] Tutto ciò che abbia a che vedere con la nicchia dei Single (no sex) Compravendita siti e domini 0
cris8380 Inserimento dei dati automatici mediante numero di tessera. PHP 21
baobabdesign Corretta gestione dei clienti in analytics SEO e Posizionamento 1
V Le sessioni: ho dei dubbi sul posizionamento PHP 6

Discussioni simili