Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/08/2015, 05:59
volldamm69
 
Fecha de Ingreso: agosto-2015
Ubicación: Bilbao
Mensajes: 5
Antigüedad: 8 años, 9 meses
Puntos: 0
Error Code: 1701.

Hola a todos,

a ver si alguien me puede ayudar porque creo que tengo errores en la definicion de mi esquema.

Intento hacer un TRUNCATE de la tabla JOB, pero me da este error:

Código MySQL:
Ver original
  1. Error Code: 1701. Cannot truncate a table referenced in a foreign key constraint
  2. (`elea`.`favorites`, CONSTRAINT `FAVORITES_JOB_FK` FOREIGN KEY (`JOB_ID`) REFERENCES
  3. `elea`.`job` (`ID`))
a pesar de que la tabla FAVORITES está vacía. También me da error al hacer inserts en algunas tablas, por ejemplo:
Código MySQL:
Ver original
  1. INSERT INTO job (ID, USER_ID, TITLE, DESCRIPTION, COUNTRY_ID, TOWN_ID, PROVINCE_ID, IS_OFFER,
  2. IS_ACTIVE, PAYMENT_MODE, AMOUNT, DATE_CREATED, DATE_MODIFIED, DATE_DELETED)
  3. VALUES (2, 4, 'Electricista', 'Una .....', 0, 0, 8, 1, 1, 'H', 80, '2015-07-28 13:27:42', '2015-07-28 13:28:57',
  4. NULL)  
  5. Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`elea`.`job`,
  6. CONSTRAINT `JOB_TOWN_FK` FOREIGN KEY (`TOWN_ID`) REFERENCES `town` (`ID`) ON DELETE
Las tablas COUNTRY, TOWN, PROVINCE y USER están cargadas.

El esquema es:

Código MySQL:
Ver original
  1. -- MySQL Workbench Forward Engineering
  2.  
  3. SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
  4. SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
  5. SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
  6.  
  7. -- -----------------------------------------------------
  8. -- Schema elea
  9. -- -----------------------------------------------------
  10. DROP SCHEMA IF EXISTS `elea` ;
  11.  
  12. -- -----------------------------------------------------
  13. -- Schema elea
  14. -- -----------------------------------------------------
  15. CREATE SCHEMA IF NOT EXISTS `elea` DEFAULT CHARACTER SET latin1 COLLATE latin1_spanish_ci ;
  16. USE `elea` ;
  17.  
  18. -- -----------------------------------------------------
  19. -- Table `elea`.`COUNTRY`
  20. -- -----------------------------------------------------
  21. DROP TABLE IF EXISTS `elea`.`COUNTRY` ;
  22.  
  23. CREATE TABLE IF NOT EXISTS `elea`.`COUNTRY` (
  24. `ID` INT NOT NULL,
  25. `NAME` VARCHAR(45) NOT NULL,
  26. `AVAILABLE` TINYINT(1) NOT NULL DEFAULT 0,
  27. PRIMARY KEY (`ID`))
  28.  
  29.  
  30. -- -----------------------------------------------------
  31. -- Table `elea`.`PROVINCE`
  32. -- -----------------------------------------------------
  33. DROP TABLE IF EXISTS `elea`.`PROVINCE` ;
  34.  
  35. CREATE TABLE IF NOT EXISTS `elea`.`PROVINCE` (
  36. `NAME` VARCHAR(45) NOT NULL,
  37. `COUNTRY_ID` INT NOT NULL,
  38. PRIMARY KEY (`ID`),
  39. INDEX `COUNTRY_FK_idx` (`COUNTRY_ID` ASC),
  40. CONSTRAINT `COUNTRY_FK`
  41. FOREIGN KEY (`COUNTRY_ID`)
  42. REFERENCES `elea`.`COUNTRY` (`ID`)
  43.  
  44.  
  45. -- -----------------------------------------------------
  46. -- Table `elea`.`TOWN`
  47. -- -----------------------------------------------------
  48. DROP TABLE IF EXISTS `elea`.`TOWN` ;
  49.  
  50. CREATE TABLE IF NOT EXISTS `elea`.`TOWN` (
  51. `NAME` VARCHAR(100) NOT NULL,
  52. `PROVINCE_ID` INT NOT NULL,
  53. `DC` INT NOT NULL,
  54. `COD_MUNICIPIO` INT NOT NULL,
  55. PRIMARY KEY (`ID`),
  56. INDEX `PROVINCE_FK_idx` (`PROVINCE_ID` ASC),
  57. CONSTRAINT `PROVINCE_FK`
  58. FOREIGN KEY (`PROVINCE_ID`)
  59. REFERENCES `elea`.`PROVINCE` (`ID`)
  60.  
  61.  
  62. -- -----------------------------------------------------
  63. -- Table `elea`.`USER`
  64. -- -----------------------------------------------------
  65. DROP TABLE IF EXISTS `elea`.`USER` ;
  66.  
  67. CREATE TABLE IF NOT EXISTS `elea`.`USER` (
  68. `ID` INT NOT NULL,
  69. `USER_KEY` VARCHAR(100) NULL,
  70. `EMAIL` VARCHAR(150) NULL,
  71. `MAIL_NOTIF_ACTIVE` TINYINT(1) NULL DEFAULT 1,
  72. `DEVICE_NOTIF_ACTIVE` TINYINT(1) NULL DEFAULT 1,
  73. `DEVICE_ID` VARCHAR(100) NULL,
  74. PRIMARY KEY (`ID`))
  75.  
  76.  
  77. -- -----------------------------------------------------
  78. -- Table `elea`.`JOB`
  79. -- -----------------------------------------------------
  80. DROP TABLE IF EXISTS `elea`.`JOB` ;
  81.  
  82. CREATE TABLE IF NOT EXISTS `elea`.`JOB` (
  83. `ID` INT NOT NULL,
  84. `USER_ID` INT NOT NULL,
  85. `TITLE` VARCHAR(100) NULL,
  86. `DESCRIPTION` VARCHAR(4000) NULL,
  87. `COUNTRY_ID` INT NULL,
  88. `TOWN_ID` INT NULL,
  89. `PROVINCE_ID` INT NULL,
  90. `IS_OFFER` TINYINT(1) NOT NULL,
  91. `IS_ACTIVE` TINYINT(1) NULL DEFAULT 1,
  92. `PAYMENT_MODE` VARCHAR(1) NULL,
  93. `AMOUNT` INT NULL,
  94. `DATE_CREATED` DATE NULL,
  95. `DATE_MODIFIED` DATE NULL,
  96. `DATE_DELETED` DATE NULL,
  97. PRIMARY KEY (`ID`),
  98. INDEX `COUNTRY_FK_idx` (`COUNTRY_ID` ASC),
  99. INDEX `PROVINCE_FK_idx` (`PROVINCE_ID` ASC),
  100. INDEX `TOWN_FK_idx` (`TOWN_ID` ASC),
  101. INDEX `USER_FK_idx` (`USER_ID` ASC),
  102. CONSTRAINT `JOB_COUNTRY_FK`
  103. FOREIGN KEY (`COUNTRY_ID`)
  104. REFERENCES `elea`.`COUNTRY` (`ID`)
  105. CONSTRAINT `JOB_PROVINCE_FK`
  106. FOREIGN KEY (`PROVINCE_ID`)
  107. REFERENCES `elea`.`PROVINCE` (`ID`)
  108. CONSTRAINT `JOB_TOWN_FK`
  109. FOREIGN KEY (`TOWN_ID`)
  110. REFERENCES `elea`.`TOWN` (`ID`)
  111. CONSTRAINT `JOB_USER_FK`
  112. FOREIGN KEY (`USER_ID`)
  113. REFERENCES `elea`.`USER` (`ID`)
  114.  
  115.  
  116. -- -----------------------------------------------------
  117. -- Table `elea`.`FAVORITES`
  118. -- -----------------------------------------------------
  119. DROP TABLE IF EXISTS `elea`.`FAVORITES` ;
  120.  
  121. CREATE TABLE IF NOT EXISTS `elea`.`FAVORITES` (
  122. `ID` INT NOT NULL,
  123. `USER_ID` INT NULL,
  124. `JOB_ID` INT NULL,
  125. PRIMARY KEY (`ID`),
  126. INDEX `USER_FK_idx` (`USER_ID` ASC),
  127. INDEX `JOB_FK_idx` (`JOB_ID` ASC),
  128. CONSTRAINT `FAVORITES_USER_FK`
  129. FOREIGN KEY (`USER_ID`)
  130. REFERENCES `elea`.`USER` (`ID`)
  131. CONSTRAINT `FAVORITES_JOB_FK`
  132. FOREIGN KEY (`JOB_ID`)
  133. REFERENCES `elea`.`JOB` (`ID`)
  134.  
  135.  
  136. -- -----------------------------------------------------
  137. -- Table `elea`.`MESSAGES`
  138. -- -----------------------------------------------------
  139. DROP TABLE IF EXISTS `elea`.`MESSAGES` ;
  140.  
  141. CREATE TABLE IF NOT EXISTS `elea`.`MESSAGES` (
  142. `ID` INT NOT NULL,
  143. `SENDER_ID` INT NOT NULL,
  144. `RECEIVER_ID` INT NOT NULL,
  145. `MESSAGE_TEXT` VARCHAR(4000) NOT NULL,
  146. `IS_READ` TINYINT(1) NULL DEFAULT 0,
  147. `DATE_CREATED` DATE NULL,
  148. `DATE_MODIFIED` DATE NULL,
  149. `DATE_DELETED` DATE NULL,
  150. `JOB_ID` INT NULL,
  151. `SUBJECT` VARCHAR(100) NULL,
  152. PRIMARY KEY (`ID`),
  153. INDEX `MESSAGES_SENDER_FK_idx` (`SENDER_ID` ASC),
  154. INDEX `MESSAGES_RECEIVER_FK_idx` (`RECEIVER_ID` ASC),
  155. INDEX `MESSAGES_JOB_FK_idx` (`JOB_ID` ASC),
  156. CONSTRAINT `MESSAGES_SENDER_FK`
  157. FOREIGN KEY (`SENDER_ID`)
  158. REFERENCES `elea`.`USER` (`ID`)
  159. CONSTRAINT `MESSAGES_RECEIVER_FK`
  160. FOREIGN KEY (`RECEIVER_ID`)
  161. REFERENCES `elea`.`USER` (`ID`)
  162. CONSTRAINT `MESSAGES_JOB_FK`
  163. FOREIGN KEY (`JOB_ID`)
  164. REFERENCES `elea`.`JOB` (`ID`)
  165.  
  166.  
  167. -- -----------------------------------------------------
  168. -- Table `elea`.`PROPERTIES`
  169. -- -----------------------------------------------------
  170. DROP TABLE IF EXISTS `elea`.`PROPERTIES` ;
  171.  
  172. CREATE TABLE IF NOT EXISTS `elea`.`PROPERTIES` (
  173. `ID` INT NOT NULL,
  174. `PROP_NAME` VARCHAR(45) NULL,
  175. `PROP_VALUE` VARCHAR(200) NULL,
  176. PRIMARY KEY (`ID`))
  177.  
  178.  
  179. SET SQL_MODE=@OLD_SQL_MODE;
  180. SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
  181. SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
[/QUOTE]



Gracias de antemano

Última edición por gnzsoloyo; 11/08/2015 a las 06:10 Razón: Código PESIMAMENTE etiquetado.