Jump to content
php.lv forumi

Kā sataisīt, lai neveidojas dublikāti?


Sasa

Recommended Posts

Nezinu kā citām DB, bet MySQL var uzlikt unique key uz kādu no laukiem. Tātad mēģinot ievietot jau ievietotu informāciju šajā laukā, tas nenotiks un inserts nofeilos ~ "Duplicate entry for bla bla bla..."

Link to comment
Share on other sites

Katrai tabulai normāli būtu jābūt primārai atslēgai, pēc kuras ierakstu var nekļūdīgi identificēt. Tā var būt balstīta uz biznesa datiem, piemēram personas kods personai, vai vienkārši unikāls skaitlis (parasti dbvs nodrošina to ģenerēšanu, MySQLā autoincrement laikam bija), kam nav nekādas biznesa jēgas, bet kuru izmanto programmēšanā, lai varētu ieraksru a atšķirt no ieraksta b. Primārā atslēga katrai tabulai var būt ne vairāk kā 1. Ja ar to nepietiek var likt cik tikai nevajag unikālās atslēgas uz viena laukau vai lauku kombinācijām, kas 100% nodrošina to, ka dati tiešām tabulā būs unikāli. Metodei vispirms paskatīties vai tabulā tāds ieraksta jau nav un tad insertot ir vismaz 2 trūkumi:

1) tā droši strādā tikai sistēmā kur ir viens lietotājs, jo daudzlietotāju sistrēmā Tu paskatījies, nebija, bet cits jau tajā brīdī ierakstu iekrāmēja

2) tā strādā tikai caur tavu aplikāciju.

 

Protams šo metodi var izmantot kombinācijā ar prmārām un/vai unikālām atslēgām, lai dotu lietotājam draudzīgus paziņojumus, nevis blabla kaut kas violated...

Apraksts drusku vairāk par ierobežojumiem ir šeit un sintakse, kā tos izveidot, jāskatās MySQL manuālī vai arī visādos GUI rīkos tos var saklikšķināt un tad rīks Tavā vietā izveidos SQL teikumu, kuru izpildīs basē un uztaisīs vēlamo atslēgu.

 

Gints Plivna

http://datubazes.wordpress.com

Link to comment
Share on other sites

neder man unikālie lauki kuri itkā nevar atkārtotoes.

 

Tātad izdomāju šādi kaut kā:

var SQL = "SELECT temp_izmeri.Kods  FROM temp_izmeri WHERE Kods = '"+ document.getElementById('xkods').innerHTML +"';";
			rs.Open(SQL, cn);
			var temp_kods =  rs("Kods");
			alert(temp_kods);
			if (temp_kods == document.getElementById('xkods').innerHTML)
			{
				alert('kaut kas tads jau ir! :(');
			}
			else if (document.getElementById('xkods').innerHTML == "object")
			{
				alert('nav tada!');
			}

bet ir tā, ja ka tajā tabulā ir jau tāds ieraksts izvadās 'kaut kas tāds jau ir', bet ja nav tabulā tāda ieraksta tad man izdod ārā [object] bet neizpildās else if un neizvadās 'nav tada'. Kā es varu pārbaudīt, ja man izdod ārā [object].?

Link to comment
Share on other sites

ja viss ok tad izvadās man strings nosaukums no datubāzes. bet ja nav iekš db tad izvadās tas [object]. Tātad laikam tas ir strings nevis kaut kāds elements(objekts) iekš HTML'a!

Link to comment
Share on other sites

×
×
  • Create New...