Thank You!!
> Rafal, > > the test case below is different from the one you posted yesterday. > > Below you are trying to add a constraint > > " > foreign key(nip_h,nrpok_p) references pokoje(nip_h,nrpok_p) on delete set > null > " > > though you have declared > > " > nip_h int(10) not null > " > > in 'rezerwacje'. InnoDB does not accept the constraint because 'on delete > set null' is not sensible when you declare the column not null. > > I have now added a note to InnoDB manuals about this. > > Best regards, > > Heikki Tuuri > Innobase Oy > --- > InnoDB - transactions, hot backup, and foreign key support for MySQL > See http://www.innodb.com, download MySQL-Max from http://www.mysql.com > > sql query > > ............................. > Subject: Re: Bug in foreign keys > From: Rafal Jank > Date: Fri, 10 Jan 2003 11:10:35 +0100 > > > ---------------------------------------------------------------------------- > ---- > > On Thu, 09 Jan 2003 23:41:46 +0200 > Heikki Tuuri <[EMAIL PROTECTED]> wrote: > > > Rafal, > > > > I tested also with the `hotele`, and it worked ok. > > > > Please provide your my.cnf and MySQL version number. And test if you can > > repeat the error. > > > > Regards, > > > > Heikki > > > MySQL version 4.0.8, my my.cnf is as follows: > > # Example mysql config file for medium systems. > # > # This is for a system with little memory (32M - 64M) where MySQL plays > # a important part and systems up to 128M very MySQL is used together with > # other programs (like a web server) > # > # You can copy this file to > # /etc/mf.cnf to set global options, > # mysql-data-dir/my.cnf to set server-specific options (in this > # installation this directory is /var/lib/mysql) or > # ~/.my.cnf to set user-specific options. > # > # One can in this file use all long options that the program supports. > # If you want to know which options a program support, run the program > # with --help option. > > # The following options will be passed to all MySQL clients > [client] > #password = your_password > port = 3306 > socket = /var/lib/mysql/mysql.sock > > # Here follows entries for some specific programs > > # The MySQL server > [mysqld] > port = 3306 > socket = /var/lib/mysql/mysql.sock > skip-locking > set-variable = key_buffer=16M > set-variable = max_allowed_packet=1M > set-variable = table_cache=64 > set-variable = sort_buffer=512K > set-variable = net_buffer_length=8K > set-variable = myisam_sort_buffer_size=8M > #set-variable = max_user_connections =2 > log-bin > server-id = 1 > default-character-set = latin2 > > # Point the following paths to different dedicated disks > #tmpdir = /tmp/ > #log-update = /path-to-dedicated-directory/hostname > > # Uncomment the following if you are using BDB tables > #set-variable = bdb_cache_size=4M > #set-variable = bdb_max_lock=10000 > > # Uncomment the following if you are using Innobase tables > innodb_data_file_path = ibdata1:25M;ibdata2:37M;ibdata3:100M:autoextend > innodb_data_home_dir = /var/lib/mysql/ > innodb_log_group_home_dir = /var/lib/mysql/ > innodb_log_arch_dir = /var/lib/mysql/ > set-variable = innodb_mirrored_log_groups=1 > set-variable = innodb_log_files_in_group=3 > set-variable = innodb_log_file_size=5M > set-variable = innodb_log_buffer_size=8M > innodb_flush_log_at_trx_commit=1 > innodb_log_archive=0 > set-variable = innodb_buffer_pool_size=16M > set-variable = innodb_additional_mem_pool_size=2M > set-variable = innodb_file_io_threads=4 > set-variable = innodb_lock_wait_timeout=50 > > [mysqldump] > quick > set-variable = max_allowed_packet=16M > > [mysql] > no-auto-rehash > # Remove the next comment character if you are not familiar with SQL > #safe-updates > > and the test case: > > mysql> drop table pokoje,rezerwacje,hotele; > Query OK, 0 rows affected (1.13 sec) > > mysql> create table hotele ( > -> nip_h int(10) not null, > -> nazwa_h varchar(100) not null, > -> miasto_h varchar(50) not null, > -> kodpocz_h int(5) not null, > -> adres_h varchar(50), > -> email_h varchar(50), > -> kontobank_h int(32), > -> wyprzedaz_h varchar(10), > -> standard_h varchar(20), > -> opis_h varchar(200), > -> primary key (nip_h) > -> ) > -> type=innodb; > Query OK, 0 rows affected (0.17 sec) > > mysql> create table pokoje ( > -> nrpok_p char(10) not null, > -> nip_h int(10) not null, > -> lozka_p char(2), > -> tv_p char(1), > -> lazienka_p char(1), > -> cena_p int(10), > -> zaliczka_p int(10), > -> index nip_h_index (nip_h,nrpok_p), > -> foreign key (nip_h) references hotele (nip_h) on delete cascade, > -> primary key (nrpok_p, nip_h) > -> ) > -> type=innodb; > Query OK, 0 rows affected (0.21 sec) > > mysql> create table rezerwacje ( > -> id_r int(10) not null, > -> pesel_k int(11), > -> nip_h int(10) not null, > -> nrpok_p char(10) not null, > -> data_r date, > -> od_r date, > -> do_r date, > -> cena_r int(10), > -> zaliczka_r int(5), > -> zaplac_r char(1), > -> wplaczal_r char(1), > -> index nip_h_index (nip_h,nrpok_p), > -> foreign key(nip_h,nrpok_p) references pokoje(nip_h,nrpok_p) on > delete > se > t null, > -> index pesel_k_index (pesel_k), > -> primary key(id_r)) type=innodb; > ERROR 1005: Can't create table './test/rezerwacje.frm' (errno: 150) > > > > > > > > --------------------------------------------------------------------- > Before posting, please check: > http://www.mysql.com/manual.php (the manual) > http://lists.mysql.com/ (the list archive) > > To request this thread, e-mail <[EMAIL PROTECTED]> > To unsubscribe, e-mail <[EMAIL PROTECTED]> > Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php > -- _/ _/ _/_/_/ ----- Rafał Jank [EMAIL PROTECTED] ----- _/ _/ _/ _/ _/ Wirtualna Polska SA http://www.wp.pl _/_/_/_/ _/_/_/ ul. Traugutta 115c, 80-237 Gdansk, tel/fax. (58)5215625 _/ _/ _/ --------==* http://szukaj.wp.pl *==---------- --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php