post icon

Solucionar error Can’t create table ‘???’ (errno: 150) en MySQL

Hace un momento me ha tocado resolver un problema que ocurría en uno de nuestros motores de MySQL, se daba cuando intentaba crear una llave foránea y el error era semejante al que sigue, donde ??? representa el nombre de la tabla:

Can't create table '???' (errno: 150)

Se estaba volviendo algo molesto y tenía una idea de lo que podía ser, un problema con la FK de las tablas, pero no encontraba que específicamente. Leyendo un poco la documentación encontré y aprendí que se puede deber principalmente a 3 situaciones:

  • Si los campos que harán referencia entre sí usan tipos de datos distintos.
  • Si el constraint está configurado en “On Delete Set Null” pero el campo no permite Nulos.
  • Si las tablas no son del mismo tipo, ejemplo: uno es MYISAM y el otro INNODB.

Bueno, no fue un problema muy difícil de resolver, pero a mi me tomó un tiempo ya que justamente en mi caso particular fue la tercer situación.

Comentarios desde Facebook:

  1. avatar
    Jose MEXICO Google Chrome Windows
    4 Julio 2013 at 14:20 #

    Sigo teniendo el mismo problema,. no me deja crear la segunda tabla, y no lo he podido resolver estas son mis tablas, alguien tendra idea de por que, y como resolverlo

    create table cotizaciones(
    id int not null auto_increment primary key,
    id_proyecto int,
    proveedor varchar( 250 ),
    acuerdoPago varchar( 100 ),
    nivelPoliza varchar( 100 ),
    otros text,
    efectiva int,
    fechaAutorizaJefe datetime,
    fechaAutorizaDireccion datetime,
    cotizacion int,
    folio varchar( 100 ) not null,
    fechaCotizacion datetime
    );

    create table precios(
    id int not null auto_increment primary key,
    id_proyecto int,
    folioCotizacion varchar(100) not null,
    precio decimal(14,2),
    foreign key( folioCotizacion ) references cotizaciones( folio ) ON DELETE no action
    );

    • avatar
      Jose MEXICO Google Chrome Windows
      5 Julio 2013 at 14:50 #

      Gracias compitillas ya lo solucione

  2. avatar
    Miguel Google Chrome Windows
    11 Noviembre 2012 at 20:00 #

    ya entendí este concepto
    innodb es más estricta que myIsam, por ejemplo si tenemos una tabla ASIGNACION(con 2 claves primarias) y
    HORARIO(Con una clave primaria)
    —————-
    unimos las dos de muchos a muchos, entonces abra una tabla en medio llamada DETALLEASIGNACION, la cual una las claves primarias, entonces
    aqui viene el detalle..

    si la tabla DETALLEASIGNACION es de tipo INNODB, funcionará perfectamente si contiene “TODAS LAS CLAVES PRIMARIAS” de ambas tablas (Asignacion y horario), en este caso particular habra 3 claves, si se borra una de ellas ya no funcionará y saldrá ese conocido error.

    Si la tabla DETALLEASIGNACION es de tipo MyISAM, funciona perfectamente si contiene las 3 claves primarias de las tablas descritas y también si se quita una de las claves de la tabla asignacion y se queda solo con 2, funciona porque myIsam no es tan estricta en las relaciones que INNODB.

    estuve toda una tarde pero al final funcionó, porque entendí estas diferenias, tal vez pueda ayudar a alguno a resolver su problema.

    • avatar
      Nestor Pastor Piera SPAIN Mozilla Firefox Ubuntu Linux
      13 Noviembre 2012 at 12:05 #

      no sólo la tabla detalleasignacion debe ser innodb, también las tablas asignacion y horario deben serlo. En concreto lo que te permite el tipo de tabla innodb es comprobar la integridad referencial, por ejemplo:
      CREATE TABLE A (id char(3) primary key)type=InnoDB;
      CREATE TABLE C (id char(5) primary key)type=InnoDB;
      CREATE TABLE B (ida char(3), idb char(5),primary key(ida,idb),
      constraint fk_ida foreign key (ida) references A(id) on delete no action on update cascade, constraint fk_idb foreign key (idc) references C(id) on delete no action on update cascade) type=InnoDB;
      Al comprobar la integridad referencial nos obliga a que las claves relacionadas sean del mismo tipo, en este caso char(3) y char(5) respectivamente, además si actualizamos C(id) se actualizará también B(idc) y si borramos A(id) no ocurrirá nada en B(idc), depende de como detallemos la restricción, podemos definir “cascade, no action, set null, …”; esta funcionalidad no está soportada en tablas MyISAM.
      Espero haberme explicado bien.

  3. avatar
    Eduardo Villota Mozilla Firefox Windows
    18 Octubre 2012 at 19:34 #

    gracias muy bueno el mio fue

    que el tipo de dato en los dos era MEDIUMINT

    pero solo en uno estaba UNSIGNED

  4. avatar
    karina MEXICO Internet Explorer Windows
    2 Julio 2012 at 13:03 #

    hola amigos ya estuve leyendo sus post pero aun asi no encuentro mi error segun yo ya verifique todo y esta bien pero aun no me deja crearla espero que alguien me pueda ayudar porfaaaaa
    aqui les dejo mi codigo
    create table reg_switch(NombreActivo varchar(20) not null primary key,
    No_Serie varchar(20),
    No_Switch int,
    CodigoFisico varchar(50),
    ManufacturaEquipo varchar(15),
    ModeloEquipo varchar(20),
    Etiqueta varchar(15),
    SoporteMantenimiento varchar(20),
    DuracionPoliza varchar(50),
    FirewareVersion varchar(20),
    ClaseServicio int,
    Ip varchar(15),
    Status_SW varchar(20),
    SeccionServicioRed varchar(20),
    NumTipoInterface varchar(25),
    YearInstalacion int,
    Comentario varchar(100),
    EoS varchar(30),
    EoL varchar(30))Engine=InoDB;

    create table Puerto(ID_Puerto int auto_increment,
    No_Puerto varchar(11),
    Descripcion varchar(50),
    Status_P varchar(20),
    Vlan_P varchar(20),
    id_reg int,
    NombreActivo varchar(20),
    PRIMARY KEY(ID_Puerto),
    KEY(NombreActivo),
    FOREIGN KEY(NombreActivo) REFERENCES reg_switch(NombreActivo)
    ON DELETE CASCADE
    ON UPDATE CASCADE)ENGINE=InnoDB;

  5. avatar
    Joaquin MEXICO Google Chrome Windows
    8 Mayo 2012 at 20:10 #

    Excelente!, gracias por el aporte

  6. avatar
    ivan SPAIN Google Chrome Windows
    24 Febrero 2012 at 10:05 #

    Bueno sigo diciendo que me a venido bien la información pero lo de
    MYISAM y el otro INNODB no es correcto del todo si te da el erno 150 es porque las si hay un fk que pide unos datos de la misma tabla se tiene que poner asi
    Ej:
    create table test2
    (
    idd int,
    nss int,
    Primary key ( idd, nss );
    Create table test1
    (
    nombre varchar (255),
    idd int,
    nss int,
    PRIMARY KEY ( nombre ),
    FOREING KEY ( idd, nss ) references test2 ( idd, nss));

    Así se soluciconaria ese error, yo lo que hacia es poner engie = myisam); y me tiraba pero preguntando por allí, esto lo que hace es engañar al sistema, esto esta mal. Lo bueno es como lo describo con las tablas test1 y test 2.

    • avatar
      UN1C0 Mozilla Firefox Ubuntu Linux
      7 Abril 2012 at 08:12 #

      no se si te he entendido bien pero según creo que dices no le pones el tipo de tabla y en ese caso el tipo por defecto es MyISAM, este tipo no soporta fk así que aunque te deje crearlo no está bien, luego en el DDL no te van a funcionar las fk, así que hay que definir tanto las tablas con los atributos padres como las tablas con los atributos hijos, como type=InnoDB.

    • avatar
      Gilberto MEXICO Google Chrome Windows
      19 Mayo 2016 at 14:42 #

      Excelente llevo todo el dia tratando de resolverlo
      esto me dio la pista

      FOREING KEY ( idd, nss ) references test2 ( idd, nss));

  7. avatar
    ivan SPAIN Google Chrome Windows
    23 Febrero 2012 at 16:46 #

    Gracias por la información me a ayudado mucho,
    Al crear una bd me a salido el primer y segundo error,
    hasta que encontré está solución casi me muero.
    Gracias.

  8. avatar
    andres COLOMBIA Google Chrome Ubuntu Linux
    22 Junio 2011 at 23:19 #

    yo tuve este mismo codigo de error, y encontre de la codificacion de las tablas en las que se hace relacion puede ser un problema al crear los constraint, espero alguien le sirva.

  9. avatar
    Julian COLOMBIA Google Chrome Windows
    30 Septiembre 2010 at 13:22 #

    A mi me pasaba y es algo muy tonto.

    Estaba haciendo las tablas desde Netbeans y resulta que hay que crear primero las tablas a las cuales se hacen referencia o sea las que llevan las claves principales, y luego las tablas que llevan las claves foráneas, ya que el programa es secuencial en la creación de las tablas.

    Suerte

  10. avatar
    Jib MEXICO Internet Explorer Windows
    7 Septiembre 2010 at 11:18 #

    Hola, estoy checando tu post, debido a que una BD me está marcando el errno 150 y ya examiné las tablas varias veces y no encuentro el error en la FK que intento relacionar, espero alguien pueda ayudarme a detectar el error para poder corregirlo por favor.

    El error que marca es el siguiente:

    Error
    consulta SQL:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    
     
    -- ----------------------------------------------------- -- Table `imagen`.`Pacientes` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `imagen`.`Pacientes` ( `idPaciente` INT NOT NULL AUTO_INCREMENT , `idMed_Pac` INT NOT NULL , `cve_Est_Pac` VARCHAR(15) NOT NULL , `nombre_Pac` VARCHAR(45) NOT NULL , `apat_Pac` VARCHAR(45) NOT NULL , `amat_Pac` VARCHAR(45) NOT NULL , `fecnac_Pac` DATE NOT NULL , `edad_Pac` VARCHAR(45) NOT NULL , `sexo_Pac` VARCHAR(15) NOT NULL , `tel_Pac` VARCHAR(15) NOT NULL , `direccion_Pac` VARCHAR(85) NOT NULL , `correo_pac` VARCHAR(45) NOT NULL , PRIMARY KEY (`idPaciente`) , INDEX `idMed_Pac` (`idMed_Pac` ASC) , INDEX `cve_Est_Pac` (`cve_Est_Pac` ASC) , CONSTRAINT `idMed_Pac` FOREIGN KEY (`idMed_Pac` ) REFERENCES `imagen`.`Medicos` (`idMed` ) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `cve_Est_Pac` FOREIGN KEY (`cve_Est_Pac` ) REFERENC[...] 
     
    MySQL ha dicho:  
     
    #1005 - Can't create table 'imagen.pacientes' (errno: 150) 
     
    Y estas son las tablas que forman parte de la BD
     
    SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
    SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
    SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
     
    CREATE SCHEMA IF NOT EXISTS `imagen` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
    USE `imagen`;
     
    -- -----------------------------------------------------
    -- Table `imagen`.`Usuario`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `imagen`.`Usuario` (
      `idUsr` INT NOT NULL AUTO_INCREMENT ,
      `Nomb_Usr` VARCHAR(45) NOT NULL ,
      `Apat_Usr` VARCHAR(45) NOT NULL ,
      `Amat_Usr` VARCHAR(45) NOT NULL ,
      `Usuario` VARCHAR(45) NOT NULL ,
      `Password` VARCHAR(45) NOT NULL ,
      PRIMARY KEY (`idUsr`) )
    ENGINE = InnoDB;
     
     
    -- -----------------------------------------------------
    -- Table `imagen`.`Medicos`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `imagen`.`Medicos` (
      `idMed` INT NOT NULL AUTO_INCREMENT ,
      `nombre_Med` VARCHAR(45) NOT NULL ,
      `apat_Med` VARCHAR(45) NOT NULL ,
      `amat_Med` VARCHAR(45) NOT NULL ,
      `especialidad_Med` VARCHAR(45) NOT NULL ,
      `fecnac_Med` DATE NOT NULL ,
      `telconsultorio_Med` VARCHAR(15) NOT NULL ,
      `telparticular_Med` VARCHAR(15) NULL ,
      `telcasa_Med` VARCHAR(15) NULL ,
      `telextra_Med` VARCHAR(15) NULL ,
      `asistente_Med` VARCHAR(45) NULL ,
      `direcconsult_Med` VARCHAR(100) NOT NULL ,
      `direccasa_Med` VARCHAR(100) NULL ,
      PRIMARY KEY (`idMed`) )
    ENGINE = InnoDB;
     
     
    -- -----------------------------------------------------
    -- Table `imagen`.`Estudios`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `imagen`.`Estudios` (
      `idEst` INT NOT NULL AUTO_INCREMENT ,
      `cve_Est` VARCHAR(15) NOT NULL ,
      `nomb_Est` VARCHAR(45) NOT NULL ,
      `preparacion_Est` VARCHAR(45) NOT NULL ,
      PRIMARY KEY (`idEst`, `cve_Est`) )
    ENGINE = InnoDB;
     
     
    -- -----------------------------------------------------
    -- Table `imagen`.`Pacientes`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `imagen`.`Pacientes` (
      `idPaciente` INT NOT NULL AUTO_INCREMENT ,
      `idMed_Pac` INT NOT NULL ,
      `cve_Est_Pac` VARCHAR(15) NOT NULL ,
      `nombre_Pac` VARCHAR(45) NOT NULL ,
      `apat_Pac` VARCHAR(45) NOT NULL ,
      `amat_Pac` VARCHAR(45) NOT NULL ,
      `fecnac_Pac` DATE NOT NULL ,
      `edad_Pac` VARCHAR(45) NOT NULL ,
      `sexo_Pac` VARCHAR(15) NOT NULL ,
      `tel_Pac` VARCHAR(15) NOT NULL ,
      `direccion_Pac` VARCHAR(85) NOT NULL ,
      `correo_pac` VARCHAR(45) NOT NULL ,
      PRIMARY KEY (`idPaciente`) ,
      INDEX `idMed_Pac` (`idMed_Pac` ASC) ,
      INDEX `cve_Est_Pac` (`cve_Est_Pac` ASC) ,
      CONSTRAINT `idMed_Pac`
        FOREIGN KEY (`idMed_Pac` )
        REFERENCES `imagen`.`Medicos` (`idMed` )
        ON DELETE CASCADE
        ON UPDATE CASCADE,
      CONSTRAINT `cve_Est_Pac`
        FOREIGN KEY (`cve_Est_Pac` )
        REFERENCES `imagen`.`Estudios` (`cve_Est` )
        ON DELETE CASCADE
        ON UPDATE CASCADE)
    ENGINE = InnoDB;
     
     
    -- -----------------------------------------------------
    -- Table `imagen`.`Convenios`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `imagen`.`Convenios` (
      `idConvenio` INT NOT NULL AUTO_INCREMENT ,
      `Nombre_Convenio` VARCHAR(45) NOT NULL ,
      `requisitos_Convenio` LONGTEXT NOT NULL ,
      PRIMARY KEY (`idConvenio`) )
    ENGINE = InnoDB;
     
     
    -- -----------------------------------------------------
    -- Table `imagen`.`NotaPublico`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `imagen`.`NotaPublico` (
      `idNotaP` INT NOT NULL AUTO_INCREMENT ,
      `idUsr_NP` INT NOT NULL ,
      `idPac_NP` INT NOT NULL ,
      `idConvenio_NP` INT NOT NULL ,
      `cve_Est_NP` VARCHAR(15) NOT NULL ,
      `idMed_NP` INT NOT NULL ,
      `folio_NP` VARCHAR(15) NOT NULL ,
      `fecha_NP` DATE NOT NULL ,
      `entrega_NP` DATETIME NOT NULL ,
      `status_NP` VARCHAR(45) NOT NULL ,
      `descuento_NP` DECIMAL(2) NOT NULL ,
      `total_NP` DECIMAL(2) NOT NULL ,
      PRIMARY KEY (`idNotaP`) ,
      INDEX `idUsr_NP` (`idUsr_NP` ASC) ,
      INDEX `idPac_NP` (`idPac_NP` ASC) ,
      INDEX `idConvenio_NP` (`idConvenio_NP` ASC) ,
      INDEX `idMed_NP` (`idMed_NP` ASC) ,
      INDEX `cve_Est_NP` (`cve_Est_NP` ASC) ,
      CONSTRAINT `idUsr_NP`
        FOREIGN KEY (`idUsr_NP` )
        REFERENCES `imagen`.`Usuario` (`idUsr` )
        ON DELETE CASCADE
        ON UPDATE CASCADE,
      CONSTRAINT `idPac_NP`
        FOREIGN KEY (`idPac_NP` )
        REFERENCES `imagen`.`Pacientes` (`idPaciente` )
        ON DELETE CASCADE
        ON UPDATE CASCADE,
      CONSTRAINT `idConvenio_NP`
        FOREIGN KEY (`idConvenio_NP` )
        REFERENCES `imagen`.`Convenios` (`idConvenio` )
        ON DELETE CASCADE
        ON UPDATE CASCADE,
      CONSTRAINT `idMed_NP`
        FOREIGN KEY (`idMed_NP` )
        REFERENCES `imagen`.`Medicos` (`idMed` )
        ON DELETE CASCADE
        ON UPDATE CASCADE,
      CONSTRAINT `cve_Est_NP`
        FOREIGN KEY (`cve_Est_NP` )
        REFERENCES `imagen`.`Estudios` (`cve_Est` )
        ON DELETE CASCADE
        ON UPDATE CASCADE)
    ENGINE = InnoDB;
     
     
    -- -----------------------------------------------------
    -- Table `imagen`.`Precios`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `imagen`.`Precios` (
      `idPrecio` INT NOT NULL AUTO_INCREMENT ,
      `cve_Est_P` VARCHAR(15) NOT NULL ,
      `idConvenio_P` INT NOT NULL ,
      `precio_P` DECIMAL(2) NOT NULL ,
      PRIMARY KEY (`idPrecio`) ,
      INDEX `idConvenio_P` (`idConvenio_P` ASC) ,
      INDEX `cve_Est_P` (`cve_Est_P` ASC) ,
      CONSTRAINT `idConvenio_P`
        FOREIGN KEY (`idConvenio_P` )
        REFERENCES `imagen`.`Convenios` (`idConvenio` )
        ON DELETE CASCADE
        ON UPDATE CASCADE,
      CONSTRAINT `cve_Est_P`
        FOREIGN KEY (`cve_Est_P` )
        REFERENCES `imagen`.`Estudios` (`cve_Est` )
        ON DELETE CASCADE
        ON UPDATE CASCADE)
    ENGINE = InnoDB;
     
     
    -- -----------------------------------------------------
    -- Table `imagen`.`rfc`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `imagen`.`rfc` (
      `idrfc` INT NOT NULL AUTO_INCREMENT ,
      `registro_rfc` VARCHAR(45) NOT NULL ,
      `nom_rfc` VARCHAR(45) NOT NULL ,
      `apat_rfc` VARCHAR(45) NOT NULL ,
      `amat_rfc` VARCHAR(45) NOT NULL ,
      `direc_rfc` VARCHAR(95) NOT NULL ,
      `cp_rfc` VARCHAR(15) NOT NULL ,
      PRIMARY KEY (`idrfc`) )
    ENGINE = InnoDB;
     
     
    -- -----------------------------------------------------
    -- Table `imagen`.`NotaConvenio`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `imagen`.`NotaConvenio` (
      `idNotaC` INT NOT NULL AUTO_INCREMENT ,
      `idMed_NC` INT NOT NULL ,
      `idUsr_NC` INT NOT NULL ,
      `idPac_NC` INT NOT NULL ,
      `idConvenio_NC` INT NOT NULL ,
      `cve_Est_NC` VARCHAR(15) NOT NULL ,
      `folio_NC` VARCHAR(15) NOT NULL ,
      `fecha_NC` DATE NOT NULL ,
      `entrega_NC` DATETIME NOT NULL ,
      `status_NC` VARCHAR(45) NOT NULL ,
      `total_NC` DECIMAL(2) NOT NULL ,
      PRIMARY KEY (`idNotaC`) ,
      INDEX `idMed_NC` (`idMed_NC` ASC) ,
      INDEX `idUsr_NC` (`idUsr_NC` ASC) ,
      INDEX `idPac_NC` (`idPac_NC` ASC) ,
      INDEX `idConvenio_NC` (`idConvenio_NC` ASC) ,
      INDEX `cve_Est_NC` (`cve_Est_NC` ASC) ,
      CONSTRAINT `idMed_NC`
        FOREIGN KEY (`idMed_NC` )
        REFERENCES `imagen`.`Medicos` (`idMed` )
        ON DELETE CASCADE
        ON UPDATE CASCADE,
      CONSTRAINT `idUsr_NC`
        FOREIGN KEY (`idUsr_NC` )
        REFERENCES `imagen`.`Usuario` (`idUsr` )
        ON DELETE CASCADE
        ON UPDATE CASCADE,
      CONSTRAINT `idPac_NC`
        FOREIGN KEY (`idPac_NC` )
        REFERENCES `imagen`.`Pacientes` (`idPaciente` )
        ON DELETE CASCADE
        ON UPDATE CASCADE,
      CONSTRAINT `idConvenio_NC`
        FOREIGN KEY (`idConvenio_NC` )
        REFERENCES `imagen`.`Convenios` (`idConvenio` )
        ON DELETE CASCADE
        ON UPDATE CASCADE,
      CONSTRAINT `cve_Est_NC`
        FOREIGN KEY (`cve_Est_NC` )
        REFERENCES `imagen`.`Estudios` (`cve_Est` )
        ON DELETE CASCADE
        ON UPDATE CASCADE)
    ENGINE = InnoDB;
     
     
    -- -----------------------------------------------------
    -- Table `imagen`.`NotaAsistencia`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `imagen`.`NotaAsistencia` (
      `idNotaA` INT NOT NULL AUTO_INCREMENT ,
      `idUsr_NA` INT NOT NULL ,
      `idPac_NA` INT NOT NULL ,
      `idConvenio_NA` INT NOT NULL ,
      `cve_Est_NA` VARCHAR(15) NOT NULL ,
      `folio_NA` VARCHAR(15) NOT NULL ,
      `fecha_NA` DATE NOT NULL ,
      `entrega_NA` DATE NOT NULL ,
      `status_NA` VARCHAR(45) NOT NULL ,
      `descuento_NA` DECIMAL(2) NOT NULL ,
      `total_NA` DECIMAL(2) NOT NULL ,
      `solicita_NA` VARCHAR(45) NOT NULL ,
      `autoriza_NA` VARCHAR(45) NOT NULL ,
      PRIMARY KEY (`idNotaA`) ,
      INDEX `idUsr_NA` (`idUsr_NA` ASC) ,
      INDEX `idPac_NA` (`idPac_NA` ASC) ,
      INDEX `idConvenio_NA` (`idConvenio_NA` ASC) ,
      INDEX `cve_Est_NA` (`cve_Est_NA` ASC) ,
      CONSTRAINT `idUsr_NA`
        FOREIGN KEY (`idUsr_NA` )
        REFERENCES `imagen`.`Usuario` (`idUsr` )
        ON DELETE CASCADE
        ON UPDATE CASCADE,
      CONSTRAINT `idPac_NA`
        FOREIGN KEY (`idPac_NA` )
        REFERENCES `imagen`.`Pacientes` (`idPaciente` )
        ON DELETE CASCADE
        ON UPDATE CASCADE,
      CONSTRAINT `idConvenio_NA`
        FOREIGN KEY (`idConvenio_NA` )
        REFERENCES `imagen`.`Convenios` (`idConvenio` )
        ON DELETE CASCADE
        ON UPDATE CASCADE,
      CONSTRAINT `cve_Est_NA`
        FOREIGN KEY (`cve_Est_NA` )
        REFERENCES `imagen`.`Estudios` (`cve_Est` )
        ON DELETE CASCADE
        ON UPDATE CASCADE)
    ENGINE = InnoDB;
     
     
    -- -----------------------------------------------------
    -- Table `imagen`.`facturaPublico`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `imagen`.`facturaPublico` (
      `idFactP` INT NOT NULL AUTO_INCREMENT ,
      `idUsr_FP` INT NOT NULL ,
      `idNotaP_FP` INT NOT NULL ,
      `idrfc_FP` INT NOT NULL ,
      `folio_FactP` VARCHAR(45) NOT NULL ,
      `fecha_FactP` DATE NOT NULL ,
      `subtotal_FactP` DECIMAL(2) NOT NULL ,
      `iva_FactP` DECIMAL(2) NOT NULL ,
      `total` DECIMAL(2) NOT NULL ,
      `importletra_FactP` VARCHAR(100) NOT NULL ,
      PRIMARY KEY (`idFactP`) ,
      INDEX `idUsr_FP` (`idUsr_FP` ASC) ,
      INDEX `idNotaP_FP` (`idNotaP_FP` ASC) ,
      INDEX `idrfc_FP` (`idrfc_FP` ASC) ,
      CONSTRAINT `idUsr_FP`
        FOREIGN KEY (`idUsr_FP` )
        REFERENCES `imagen`.`Usuario` (`idUsr` )
        ON DELETE CASCADE
        ON UPDATE CASCADE,
      CONSTRAINT `idNotaP_FP`
        FOREIGN KEY (`idNotaP_FP` )
        REFERENCES `imagen`.`NotaPublico` (`idNotaP` )
        ON DELETE CASCADE
        ON UPDATE CASCADE,
      CONSTRAINT `idrfc_FP`
        FOREIGN KEY (`idrfc_FP` )
        REFERENCES `imagen`.`rfc` (`idrfc` )
        ON DELETE CASCADE
        ON UPDATE CASCADE)
    ENGINE = InnoDB;
     
     
    -- -----------------------------------------------------
    -- Table `imagen`.`facturaConvenio`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `imagen`.`facturaConvenio` (
      `idFactC` INT NOT NULL AUTO_INCREMENT ,
      `idUsr_FC` INT NOT NULL ,
      `idNotaC_FC` INT NOT NULL ,
      `idrfc_FC` INT NOT NULL ,
      `folio_FC` VARCHAR(45) NOT NULL ,
      `fecha_FC` DATE NOT NULL ,
      `subtotal_FC` DECIMAL(2) NOT NULL ,
      `iva_FC` DECIMAL(2) NOT NULL ,
      `total_FC` DECIMAL(2) NOT NULL ,
      `importletra_FC` LONGTEXT NOT NULL ,
      PRIMARY KEY (`idFactC`) ,
      INDEX `idUsr_FC` (`idUsr_FC` ASC) ,
      INDEX `idNotaC_FC` (`idNotaC_FC` ASC) ,
      INDEX `idrfc_FC` (`idrfc_FC` ASC) ,
      CONSTRAINT `idUsr_FC`
        FOREIGN KEY (`idUsr_FC` )
        REFERENCES `imagen`.`Usuario` (`idUsr` )
        ON DELETE CASCADE
        ON UPDATE CASCADE,
      CONSTRAINT `idNotaC_FC`
        FOREIGN KEY (`idNotaC_FC` )
        REFERENCES `imagen`.`NotaConvenio` (`idNotaC` )
        ON DELETE CASCADE
        ON UPDATE CASCADE,
      CONSTRAINT `idrfc_FC`
        FOREIGN KEY (`idrfc_FC` )
        REFERENCES `imagen`.`rfc` (`idrfc` )
        ON DELETE CASCADE
        ON UPDATE CASCADE)
    ENGINE = InnoDB;
     
     
     
    SET SQL_MODE=@OLD_SQL_MODE;
    SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
    SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

    Espero alguien me pueda ayudar con esto, por favor!!!

    Saludos!!!

Responder