At 23:13 +0200 5/2/04, Alessandro Sappia wrote:
When I create a table with InnoDB there is a strange behaviour in it:
mysql> CREATE TABLE prometeo_indirizzi_cliente (
    ->   indirizzi_cliente_id int(10) unsigned NOT NULL auto_increment,
    ->   denominazione_indirizzo_id int(10) unsigned default NULL,
    ->   cliente_id int(10) unsigned default NULL,
    ->   indirizzo char(30) default NULL,
    ->   civico char(10) default NULL ,
    ->   cap char(10) default NULL,
    ->   comune char(10) default NULL,
    ->   provincia char(2) default NULL,
    ->   stato char(15) default NULL,
    ->   PRIMARY KEY  (indirizzi_cliente_id,denominazione_indirizzo_id),
    ->   UNIQUE INDEX prometeo_indirizzi_cliente_unique_denominazione
(cliente_id,denominazione_indirizzo_id),
    ->   INDEX prometeo_denominazione_indirizzo_idx
(denominazione_indirizzo_id),
    ->   INDEX prometeo_cliente_idx (cliente_id),
    ->   CONSTRAINT `prometeo_indirizzi_cliente_ibfk_1` FOREIGN KEY
(`denominazione_indirizzo_id`) REFERENCES `prometeo_tipologia_indirizzo`
(`denominazione_indirizzo_id`) ON UPDATE CASCADE,
    ->   CONSTRAINT `prometeo_indirizzi_cliente_ibfk_2` FOREIGN KEY
(`cliente_id`) REFERENCES `prometeo_cliente` (`cliente_id`) ON DELETE
cascade ON UPDATE cascade
    -> ) TYPE=InnoDB;
Query OK, 0 rows affected (0.12 sec)

mysql> show fields from prometeo_indirizzi_cliente;
+----------------------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default |
Extra |
+----------------------------+------------------+------+-----+---------+----------------+
| indirizzi_cliente_id | int(10) unsigned | | PRI | NULL |
auto_increment |
| denominazione_indirizzo_id | int(10) unsigned | | PRI | 0 | |
| cliente_id | int(10) unsigned | YES | MUL | NULL | |
| indirizzo | char(30) | YES | | NULL | |
| civico | char(10) | YES | | NULL | |
| cap | char(10) | YES | | NULL | |
| comune | char(10) | YES | | NULL | |
| provincia | char(2) | YES | | NULL | |
| stato | char(15) | YES | | NULL | |
+----------------------------+------------------+------+-----+---------+----------------+
9 rows in set (0.00 sec)


I was expeting denominazione_indirizzo_id to be as null default not '0'
default... as it is for cliente_id!!!

It's part of your PRIMARY KEY. Columns in a PRIMARY KEY cannot contain NULL.


Note: indirizzi_cliente_id also is part of your PRIMARY KEY, but shows
NULL as the default, becuase it's an AUTO_INCREMENT column and NULL is
the value that you insert to get the "default" of "the next sequence number."



--
Paul DuBois, MySQL Documentation Team
Madison, Wisconsin, USA
MySQL AB, www.mysql.com

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to