Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Schimbare in MySQL ?
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> MySQL
Subiectul anterior :: Subiectul următor  
Autor Mesaj
kyron



Data înscrierii: 16/Sep/2004
Mesaje: 534
Locație: Bucuresti

Trimis: Vin Noi 09, 2007 2:32 pm    Titlul subiectului: Schimbare in MySQL ?  

In mysql ultima versiune am observat o chestie ciudata.

Cod:
CREATE TABLE IF NOT EXISTS `test1` (
  `id` int(11) NOT NULL auto_increment,
  `text` text NOT NULL,
  `text2` varchar(20) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


Un query de forma:

Cod:
insert into test1(id,text) values('','ceva')


sau

Cod:
insert into test1 set text = 'ceva'


arunca urmatoarea eroare : #1364 - Field 'text2' doesn't have a default value

Cu alte cuvinte, nu mai pot sa adaug o inregistrare, fara a insirui in query toate campurile tabelei, sau fara sa declar fiecarui camp o valoare default.

Asta se intampla in mysql 5.0.45.
In 5.0.27 nu-mi da eroarea respectiva.

Stie cineva mai multe ?
Sus  
flubber



Data înscrierii: 14/Mar/2006
Mesaje: 237
Locație: Bucuresti

Trimis: Vin Noi 09, 2007 4:54 pm    Titlul subiectului:  

pai toate campurile sunt not null, nu-i dai o valoare, el incearca sa ia default value
problema e de ce apar diferite mesaje intre versiuni?
Sus  
kyron



Data înscrierii: 16/Sep/2004
Mesaje: 534
Locație: Bucuresti

Trimis: Vin Noi 09, 2007 5:03 pm    Titlul subiectului:  

da, campurile sunt not null dupa cum se vede. Insa pana acum nu au fost probleme. Ar fi o restrictie prea severa din punctul meu de vedere specificarea obligatorie a unei valori default pentru fiecare camp.
Sus  
flubber



Data înscrierii: 14/Mar/2006
Mesaje: 237
Locație: Bucuresti

Trimis: Vin Noi 09, 2007 5:27 pm    Titlul subiectului:  

nu cred ca te constrange el in vre-un fel sa-i dai default value; raspunsul e in documentatie ( sau ar trebui sa fie )
cred ca se uita dupa default value pentru ca nu i-ai precizat nici o valoare si iti arunca eroarea aia
Sus  
Pirahna



Data înscrierii: 22/Aug/2004
Mesaje: 4355
Locație: la birou

Trimis: Vin Noi 09, 2007 5:56 pm    Titlul subiectului:  

eu pun deobicei valoarea NULL ca default, in caz ca difera prostiile.

si mie mi s-a intamplat dar nu am fost atent la versiuni, am dat vina pe mine :lol:
Sus  
kyron



Data înscrierii: 16/Sep/2004
Mesaje: 534
Locație: Bucuresti

Trimis: Vin Noi 09, 2007 6:21 pm    Titlul subiectului:  

de obicei se recomanda sa se foloseasca "not null", cu exceptia situatiilor cand chiar ai nevoie de un camp null. Am urmat sfatul si acum trebuie sa-mi fac downgrade de mysql :)
Sus  
carco



Data înscrierii: 27/Mai/2004
Mesaje: 2796
Locație: Bucuresti

Trimis: Vin Noi 09, 2007 7:59 pm    Titlul subiectului:  

Mie mi se pare logic, din moment ce-i specifici "not null", atunci are nevoie de o valoare default, so, pune-i default value "", 0, sau ce crezi tu (in definitia tabelei: `text` text NOT NULL DEFAULT '' ) si nu o sa mai tipe atunci cand nu specifici o valoare.
Sus  
dechim



Data înscrierii: 10/Mai/2005
Mesaje: 549
Locație: Drobeta Turnu Severin

Trimis: Vin Noi 09, 2007 8:02 pm    Titlul subiectului:  

Insisti degeaba, bug era pana acum, corect este sa apara eroare. Ai spus ca in acel camp (text2) vei introduce obligatoriu ceva, e normal sa te avertizeze. Pune-i default si se rezolva.
Sus  
kyron



Data înscrierii: 16/Sep/2004
Mesaje: 534
Locație: Bucuresti

Trimis: Dum Noi 11, 2007 4:23 pm    Titlul subiectului:  

Logic e corect, nici n-am spus altceva. Ciudat e ca s-a observat "logica" abia in pragul versiunii 6, fara nici o portita de backward compatibility.
Sus  
ebogdan



Data înscrierii: 27/Iul/2006
Mesaje: 94

Trimis: Lun Noi 12, 2007 1:07 pm    Titlul subiectului:  

Eu am observat chestia asta cu Not Null si la Mysql 4 si la 5 mereu, si am lucrat cu o gramada de sub-versiuni...
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> MySQL
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community