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

Este codigo esta bien?? para crear tabla ...

Estas en el tema de Este codigo esta bien?? para crear tabla ... en el foro de Bases de Datos General en Foros del Web. Quiero crear una tabla relacionada con otra anterior que ya tengo en la DB que se llama ac_users. Necesito que tenga un campo "foraneo" , ...
  #1 (permalink)  
Antiguo 23/04/2009, 10:02
rtr
 
Fecha de Ingreso: abril-2009
Mensajes: 368
Antigüedad: 15 años, 1 mes
Puntos: 2
Este codigo esta bien?? para crear tabla ...

Quiero crear una tabla relacionada con otra anterior que ya tengo en la DB que se llama ac_users.
Necesito que tenga un campo "foraneo" , ya que es para hacer una zona privada para los visitantes de la web, y tendria que quedar registrado quien crea y entra en esa zona privada....

Este es el codigo con el que lo intenté:


use ac_users

create table zona
(
id smallint(5) NOT NULL auto_increment,
nombre varchar(30) NOT NULL,
contraseña varchar(35) NOT ,

PRIMARY KEY (id),

FOREIGN KEY (id),

REFERENCES id(id),

)

Y este el error que me da:


MySQL ha dicho: Documentación
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'create table zona
(
id smallint(5) NOT NULL auto_increment,
nombre varchar(30' at line 3

Última edición por rtr; 23/04/2009 a las 10:33
  #2 (permalink)  
Antiguo 23/04/2009, 10:37
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 3 meses
Puntos: 360
Respuesta: Este codigo esta bien?? para crear tabla ...

Varias cosas rtr.

Cita:
contraseña varchar(35) NOT ,
1. Eso es error de sintaxis. Debes ponerle not null.

2. Cuando declaras un campo auto_increment es necesario establecerlo como llave primaria.

3. Tu lo declaras llave primaria, pero tambien tratas de declararlo como llave foranea.
Creo que debe ser uno de los dos solamente.

4. Cuando declaras un a foranea no separas con coma(,) entre la declaración y la referencia
a la tabla. debe ser foreign key (id) references nombre_tabla(campo_tabla)

5. Cuando termines el parentesís no va la coma(,) que antepones. Es error de sintaxis.

Sin conocer mucho tu estructura, la forma correcta para crear la tabla sería:

Código sql:
Ver original
  1. CREATE TABLE zona (id SMALLINT(5) NOT NULL,zona VARCHAR(30) NOT NULL,
  2. contrasena VARCHAR(35) NOT NULL, FOREIGN KEY (id) REFERENCES ac_users(id));

Asumiendo que el campo id en ac_users es de tipo smallint(5).

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 23/04/2009, 10:44
rtr
 
Fecha de Ingreso: abril-2009
Mensajes: 368
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Este codigo esta bien?? para crear tabla ...

Hola, huesos52.

Gracias, ¿no hace falta que ponga "use ac_users"?
  #4 (permalink)  
Antiguo 23/04/2009, 10:46
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 3 meses
Puntos: 360
Respuesta: Este codigo esta bien?? para crear tabla ...

Claro rtr.
Antes de crear la base de datos, debes estar sobre la BD que quieres crear la tabla.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 23/04/2009, 11:04
rtr
 
Fecha de Ingreso: abril-2009
Mensajes: 368
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Este codigo esta bien?? para crear tabla ...

En este caso no es necesario que el campo id ,sea auto_increment , ya que, lo que quiero es saber el id del usuario que crea la zona privada y el id de quien entre en ella.

No hace falta que lo sea verdad? por que lo que hará será grabar el id del visitante o creador de la zona privada...??

creis que necesito algún otro dato de las zonas que creen mis visitantes....??

id -- del creador y/o visitantes
zona -- nombre de la zona
contraseña--- contraseña creada por el que hace la zona privada
  #6 (permalink)  
Antiguo 23/04/2009, 11:06
rtr
 
Fecha de Ingreso: abril-2009
Mensajes: 368
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Este codigo esta bien?? para crear tabla ...

a , vale. entonces nada , porque la cree en la base de datos que esta la otra tabla (ac_users).
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 11:13.