Code:
CREATE TABLE `poslovnipartner` (
`idPoslovniPartner` int(10) unsigned NOT NULL auto_increment,
`PIB_JMBG` char(13) default NULL,
`MaticniBroj` char(8) default '',
`Naziv` char(60) default '',
`Adresa` char(30) default '',
`VrednostKapitala` decimal(18,2) default '0.00',
`Kupac` tinyint(1) default NULL,
`Dobavljac` tinyint(1) default NULL,
PRIMARY KEY (`idPoslovniPartner`)
) COLLATE latin1_general_ci ;
CREATE TABLE `poslovnipartner` (
`idPoslovniPartner` int(10) unsigned NOT NULL auto_increment,
`PIB_JMBG` char(13) default NULL,
`MaticniBroj` char(8) default '',
`Naziv` char(60) default '',
`Adresa` char(30) default '',
`VrednostKapitala` decimal(18,2) default '0.00',
`Kupac` tinyint(1) default NULL,
`Dobavljac` tinyint(1) default NULL,
PRIMARY KEY (`idPoslovniPartner`)
) COLLATE latin1_general_ci ;
U programu na jednom mestu imam da ubacim nekih 300 redova u tabelu poslovni partner,
za funkcionisanje programa bitno mi je da idPoslovniPartner bude kao sto je u programu...
Za ubacivanje podataka koristim sledecu naredbu(C#) :
Code:
MySqlCommand cmdInsertPP = new MySqlCommand("INSERT INTO poslovnipartner(idPoslovniPartner,PIB_JMBG,MaticniBroj,Naziv,Adresa,VrednostKapitala,Kupac,Dobavljac) VALUES (?idPoslovniPartner,?PIB,?MaticniBroj,?Naziv,?Adresa,?VrednostKapitala,?Kupac,?Dobavljac)", con2);
cmdInsertPP.Parameters.Add(new MySqlParameter("?idPoslovniPartner", MySqlDbType.UInt32, 4, "idPoslovniPartner"));
cmdInsertPP.Parameters.Add(new MySqlParameter("?PIB", MySqlDbType.String, 13, "PIB_JMBG"));
cmdInsertPP.Parameters.Add(new MySqlParameter("?MaticniBroj", MySqlDbType.String, 9, "MaticniBroj"));
cmdInsertPP.Parameters.Add(new MySqlParameter("?Naziv", MySqlDbType.String, 45, "Naziv"));
cmdInsertPP.Parameters.Add(new MySqlParameter("?Adresa", MySqlDbType.String, 30, "Adresa"));
cmdInsertPP.Parameters.Add(new MySqlParameter("?VrednostKapitala", MySqlDbType.Decimal, 20, "VrednostKapitala"));
cmdInsertPP.Parameters.Add(new MySqlParameter("?Kupac", MySqlDbType.Bit, 1, "Kupac"));
cmdInsertPP.Parameters.Add(new MySqlParameter("?Dobavljac", MySqlDbType.Bit, 1, "Dobavljac"));
cmdInsertPP.CommandType = CommandType.Text;
MySqlCommand cmdInsertPP = new MySqlCommand("INSERT INTO poslovnipartner(idPoslovniPartner,PIB_JMBG,MaticniBroj,Naziv,Adresa,VrednostKapitala,Kupac,Dobavljac) VALUES (?idPoslovniPartner,?PIB,?MaticniBroj,?Naziv,?Adresa,?VrednostKapitala,?Kupac,?Dobavljac)", con2);
cmdInsertPP.Parameters.Add(new MySqlParameter("?idPoslovniPartner", MySqlDbType.UInt32, 4, "idPoslovniPartner"));
cmdInsertPP.Parameters.Add(new MySqlParameter("?PIB", MySqlDbType.String, 13, "PIB_JMBG"));
cmdInsertPP.Parameters.Add(new MySqlParameter("?MaticniBroj", MySqlDbType.String, 9, "MaticniBroj"));
cmdInsertPP.Parameters.Add(new MySqlParameter("?Naziv", MySqlDbType.String, 45, "Naziv"));
cmdInsertPP.Parameters.Add(new MySqlParameter("?Adresa", MySqlDbType.String, 30, "Adresa"));
cmdInsertPP.Parameters.Add(new MySqlParameter("?VrednostKapitala", MySqlDbType.Decimal, 20, "VrednostKapitala"));
cmdInsertPP.Parameters.Add(new MySqlParameter("?Kupac", MySqlDbType.Bit, 1, "Kupac"));
cmdInsertPP.Parameters.Add(new MySqlParameter("?Dobavljac", MySqlDbType.Bit, 1, "Dobavljac"));
cmdInsertPP.CommandType = CommandType.Text;
I ovaj kod iz nekog razloga puca kada je nad tabelom definisan AUTO_INCREMENT ?!?
Dakle umesto da ubaci idPoslovniPartner koji mu ja zadam iz programa on ubaci sledeci ID koji mu je u tabeli. Medju
podacima nema ni jedne null vrednosti, i svi ID-ovi su medjusobno razliciti...
E sad problem sa ubacivanjem podataka sam resio tako sto privremeno ukinem AUTO_INCREMENT naredbom:
Code:
ALTER TABLE poslovnipartner CHANGE COLUMN idPoslovniPartner idPoslovniPartner INT(10) UNSIGNED NOT NULL;
ALTER TABLE poslovnipartner CHANGE COLUMN idPoslovniPartner idPoslovniPartner INT(10) UNSIGNED NOT NULL;
I podaci se lepo smeste u bazu podataka. Kada pokusam da vratim AUTO_INCREMENT , on mi daje sledecu gresku:
Citat:
Duplicate entry '1' for key 1
Napominjem da su svi idPoslovniPartner JEDINSTVENI.
Pokusao sam da sve ponovim direktno iz MySQL Query Browser-a i javlja se ista greska. Dakle problem je negde u MySQL...
Pitanje je kako da ubacitim podatke sa AUTO_INCREMENT poljem, a da se pri tome ne buni...