Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  innodb-fkcheck.test  Sprache: unbekannt

 
Spracherkennung für: .test vermutete Sprache: SQL {SQL[108] R[45] ADA[36]} [Methode: maximale Elemente, drei Dimensionen]

--source include/have_innodb.inc
--source include/default_charset.inc

#
# MDEV-10083: Orphan ibd file when playing with foreign keys
#

let $MYSQLD_DATADIR = `select @@datadir`;

create database bug_fk;
use bug_fk;

CREATE TABLE b (
  b int unsigned NOT NULL,
  d1 datetime NOT NULL,
  PRIMARY KEY (b,d1)
) ENGINE=InnoDB;

CREATE TABLE c (
  b int unsigned NOT NULL,
  d1 datetime NOT NULL,
  d2 datetime NOT NULL,
  PRIMARY KEY (b,d1),
  CONSTRAINT b_fk FOREIGN KEY (b) REFERENCES b (b)
) ENGINE=InnoDB;

show warnings;

set foreign_key_checks = 0;

DROP TABLE IF EXISTS b;

show create table c;

#
# Note that column b has different type in parent table
#
CREATE TABLE b (
  b bigint unsigned NOT NULL,
  d1 date NOT NULL,
  PRIMARY KEY (b,d1)
) ENGINE=InnoDB;
DROP TABLE b;

set foreign_key_checks = 1;
--error ER_CANT_CREATE_TABLE
CREATE TABLE b (
  b bigint unsigned NOT NULL,
  d1 date NOT NULL,
  PRIMARY KEY (b,d1)
) ENGINE=InnoDB;

show warnings;
set foreign_key_checks = 0;

DROP TABLE IF EXISTS d;

CREATE TABLE d (
  b bigint unsigned NOT NULL,
  d1 date NOT NULL,
  PRIMARY KEY (b,d1),
  CONSTRAINT bd_fk FOREIGN KEY (b) REFERENCES b (b)
) ENGINE=InnoDB;

show warnings;

set foreign_key_checks = 1;

show create table c;
show create table d;

#
# Table c column b used on foreign key has different type
# compared referenced column b in table b, but this
# create still produced b.ibd file. This is because
# we row_drop_table_for_mysql was called and referenced
# table is not allowed to be dropped even in case
# when actual create is not successfull.
#
--error 1005
CREATE TABLE b (
  b bigint unsigned NOT NULL,
  d1 date NOT NULL,
  PRIMARY KEY (b,d1)
) ENGINE=InnoDB;

show warnings;

--list_files $MYSQLD_DATADIR/bug_fk b*

set foreign_key_checks=0;

drop table c;
drop table d;

--list_files $MYSQLD_DATADIR/bug_fk b*

create table b(id int) engine=innodb;
show warnings;

--list_files $MYSQLD_DATADIR/bug_fk b*

#
# Cleanup
#

drop table b;
drop database bug_fk;

[Dauer der Verarbeitung: 0.14 Sekunden, vorverarbeitet 2026-10-08]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1126438
#Domains=1897691