[Pgsql-ayuda] tabla en postgresql
Alvaro Herrera
alvherre@dcc.uchile.cl
Sat, 18 Oct 2003 18:07:55 -0300
On Sat, Oct 18, 2003 at 08:18:34PM +0000, Katherine Gallardo Puelles wrote:
> hola, soy una novata en postgresql y tengo una duda, tengo entendido que
> las tablas se crean asi:
Hola novata. Eres de la Sta. María?
> create table employee (Name char(20),Dept char(20),jobTitle char(20));
> pero no tengo claro cómo se hace para declarar que por ejemplo Name es la
> clave primaria o la clave foránea... no entiendo
> ¿alguien me puede ayudar?
Primero que nada, no uses CHAR(n). Mejor VARCHAR(n) o incluso TEXT. La
razón es que CHAR(n) se rellena con espacios hasta completar los n
caracteres. Esto es ineficiente e inconveniente.
Puedes usar \h en psql para obtener ayuda sobre la sintaxis SQL, por
ejemplo
alvh=> \h create table
Comando: CREATE TABLE
Descripción: crear una nueva tabla
Sintaxis:
....
Un ejemplo bien artificial:
CREATE TABLE empleados (
id SERIAL PRIMARY KEY,
nombre TEXT NOT NULL
);
CREATE TABLE tipos_trabajos (
id SERIAL PRIMARY KEY,
descripcion TEXT NOT NULL
);
CREATE TABLE trabajos (
tipo_trabajo INT NOT NULL,
empleado_id INT NOT NULL REFERENCES empleados,
fecha DATE NOT NULL,
PRIMARY KEY (tipo_trabajo, fecha),
CONSTRAINT clave_foranea_trabajos FOREIGN KEY (tipo_trabajo)
REFERENCES tipos_trabajos
);
--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"Vivir y dejar de vivir son soluciones imaginarias.
La existencia está en otra parte" (Andre Breton)