Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Error en MySQL con un ALTER TABLE

Estas en el tema de Error en MySQL con un ALTER TABLE en el foro de Mysql en Foros del Web. Hola a todos, tengo el MySql 5.0.18 y siguiente script que lo ejecuto con el MySql Query Browser 1.1.20: CREATE TABLE Formulari ( id_form SERIAL, ...
  #1 (permalink)  
Antiguo 20/03/2006, 04:54
 
Fecha de Ingreso: marzo-2004
Mensajes: 5
Antigüedad: 20 años, 1 mes
Puntos: 0
Pregunta Error en MySQL con un ALTER TABLE

Hola a todos, tengo el MySql 5.0.18
y siguiente script que lo ejecuto con el MySql Query Browser 1.1.20:

CREATE TABLE Formulari (
id_form SERIAL,
Activitat VARCHAR(50),
Titol_id BIGINT(20),
Tipos VARCHAR(50),
Lloc VARCHAR(50),
Dates1 VARCHAR(50),
Dates2 VARCHAR(50),
Pregunta11 INT,
Pregunta12 INT,
Pregunta13 INT,
Pregunta14 INT,
Pregunta15 INT,
Pregunta16 INT,
Pregunta17 INT,
Pregunta18 INT,
Pregunta19 INT,
Pregunta110 INT,
Pregunta2 VARCHAR(200),
Pregunta3 VARCHAR(200),
Pregunta4 VARCHAR(200),
Alta_form BOOLEAN DEFAULT true
);

CREATE TABLE Titol(
id_titol SERIAL,
Titol VARCHAR(50),
Alta_titol BOOLEAN DEFAULT true
);

ALTER TABLE formulari ADD CONSTRAINT formulari_titol_fk FOREIGN KEY (Titol_id) REFERENCES Titol(id_titol);

Y me da este error:

Can't create table '.\test\#sql-674_112.frm' (errno: 150);

lo he probado todo lo que se y ya no se que hacer, haber si alguien puede encontrar la solucion.

Gracias.
  #2 (permalink)  
Antiguo 21/03/2006, 00:56
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 4 meses
Puntos: 43
Hola llik!

Hasta donde yo se, en mysql no hay la opción para almacenar datos booleanos en los campos, como lo pusiste en la creación de tu tabla, o será que desde mysql 5.0 ya tiene esa opción?, si no es así podrías utilizar el tipo de campo SET para imitar eso, que solo puedan almacenar valores true o false.

Un saludo y suerte!
  #3 (permalink)  
Antiguo 21/03/2006, 02:15
 
Fecha de Ingreso: marzo-2004
Mensajes: 5
Antigüedad: 20 años, 1 mes
Puntos: 0
El problema no esta en la cracion de la tabla sino en el Alter Table para crea un FOREIGN KEY, y a mi en la version de MySQL 4 tambien ponia lo de boolena y me funcionaba.

Alguien sabe el error en el ALTER TABLE????
  #4 (permalink)  
Antiguo 21/03/2006, 09:54
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Copié tu código directamente, y el único error que tuve fué que el nombre de la tabla no es formulari, sino Formulari, corregí eso y funcionó.

ALTER TABLE Formulari ADD CONSTRAINT formulari_titol_fk FOREIGN KEY (Titol_id) REFERENCES Titol(id_titol);
  #5 (permalink)  
Antiguo 21/03/2006, 10:09
 
Fecha de Ingreso: marzo-2004
Mensajes: 5
Antigüedad: 20 años, 1 mes
Puntos: 0
Gracias, peor lo he modificado como has dicho y me sigue dando el mismo error, sabes de q mas podria ser???
  #6 (permalink)  
Antiguo 21/03/2006, 10:22
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Las tablas se crean sin problemas?
  #7 (permalink)  
Antiguo 22/03/2006, 02:21
 
Fecha de Ingreso: marzo-2004
Mensajes: 5
Antigüedad: 20 años, 1 mes
Puntos: 0
Si, el error salta cuando intenta ejecutar el ALTER TABLE.
  #8 (permalink)  
Antiguo 03/11/2008, 15:51
 
Fecha de Ingreso: noviembre-2008
Mensajes: 5
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Error en MySQL con un ALTER TABLE

Por lo que estuve leyedo por ahi este error se debe a que tienes que tener en ambas tablas indices de los campos que son relaciones, de todas maneras yo ya lo he hecho y no puedo conseguir solucionar el problema.

Esa es la unica solucion clara que observe.

Despues vi que comentan sobre la opcion de guardar las tablas InnoDB en memoria o en el disco, la verdad es que no entendi bien... esa no la pude probar.

Vi otras personas que decian que era debido a que habia una especie de bug, donde si la tabla venia con el mismo nombre o era anteriormente una tabla MyISAM ocurria este problema, y lo que hicieron fue crear una tabla de cero ya siendo InnoDB, ... tampoco me funciono.

Por ultimo, vi alguien que decia que se debia a que cuando te conectabas con un esquema por default te generaba ese problema, debia conectarse sin un esquema por default y agregar el esquema en el script del sql, ... tampoco me funciono.

y por ultimo dejo un link, donde hay al final un par de link que llevan a otros lados que hablan del tema....

http://www.faqts.com/knowledge_base/view.phtml/aid/36443/fid/183

asi `que por favor, si encuentran la solucion digan que es!!.

Saludoss
  #9 (permalink)  
Antiguo 31/08/2009, 09:32
Avatar de _-ZeuS-_  
Fecha de Ingreso: junio-2007
Ubicación: Quito, Ecuador! ;)
Mensajes: 100
Antigüedad: 16 años, 10 meses
Puntos: 7
De acuerdo Respuesta: Error en MySQL con un ALTER TABLE

primero que nada hola a todos es un poco tarde para responder pero creo ke es bueno publicar la solución, mira observé dos cosas en el script:

1. No tienes definidas las primary key cuando tú creas tablas y quieres hacerlas relacionales debes asignar un primary key x ejemplo el id.

2. No tienes asignado el engine de la base de datos, en algunas bases de datos mysql se crean x defecto como MyISAM y MyISAM no permite poner relaciones con foreigns keys.

Haciendo una tabla en ejemplo las tablas deben quedarte así:

CREATE TABLE `ejemplo` (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`nombre` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE = InnoDB;

Espero que esto sirva a alguien más.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:34.