Just nu i M3-nätverket
Jump to content

INSERT utan att orsaka dubletter.


Grabben som vet hur

Recommended Posts

Grabben som vet hur

Jag har en databas men en tabell som heter "test". Jag har sedan ett script på burken som ska uppdatera test varje dag.

 

Problemet är att det blir dubletter i tabellen eftersom det inte hela tiden är nya värden som läggs in i tabellen.

 

Det jag vill göra är att när de värden som läggs in matchar både "datum" och "todo" så ska raden inte läggas in. Om Värdena som läggs in matchar datum men inte todo så ska den läggas in och tvärtom.

 

T.ex.

fältnamn: datum och todo

 

datum: 20060104

todo: "hello"

 

Uppdateringen körs och den här radne läggs in:

//Denna rad ska inte läggas in i tabellen.

datum: 20060104

todo: "hello"

 

//Denna rad ska läggas in

datum:20060104

todo: "hej"

 

//denna rad ska läggas in

datum: 20060508

todo: "hello"

 

Nu är frågan om detta går att göra?

 

Tack på förhand

/ Duja

 

Link to comment
Share on other sites

Skapa ett unique index i din databas. ex på CREATE TABLE sats

 

CREATE TABLE `test` (
 `todoid` int(10) unsigned NOT NULL auto_increment,
 `datum` date NOT NULL default '0000-00-00',
 `todo` varchar(50) NOT NULL default '',
 PRIMARY KEY  (`todoid`),
 UNIQUE KEY `Unikdatumtodo` (`datum`,`todo`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

 

[inlägget ändrat 2006-11-26 14:53:49 av mk22gq]

Link to comment
Share on other sites

Grabben som vet hur

Där har vi det, tackar så hemskt mycket !

 

Jag använder mig av raden här nedanför för att uppdatera databasen. Men när det är dubletter så skickar den ut felmeddelande, finsn det något sätt att göra så den fortsätter utan att stoppa. Vet ju felmeddelandet och dess nr, ere möjligt o typ göra ås den inte stoppar på felnr 1062?

 

EDIT: Hittade ett kommando "IGNORE" som man kunda använda. Men det verkar ha samma verkar som LOCAL så det blir fortfarande error.

 

mysql --local-infile=1 -u $MySQL_User -p$MySQL_Pass $MySQL_DB -e "LOAD DATA LOCAL INFILE '$Output' INTO TABLE $MySQL_Table FIELDS TERMINATED BY ';' LINES TERMINATED BY 'EOL';"

 

EDIT: Löst!

 

MVH

Duja

[inlägget ändrat 2006-11-28 18:44:38 av Grabben som vet hur]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...