Página 1 de 1
¿Por que es necesaria una clave primaria en odbcDataSource?
Publicado: Vie Ago 05, 2005 12:05 pm
por joseluis
Ignacio,
¿Por que es necesaria una clave primaria en cada tabla para utilizar
odbcDatasource?
Saludos,
José Luis Capel
¿Por que es necesaria una clave primaria en odbcDataSource?
Publicado: Vie Ago 05, 2005 12:40 pm
por ignacio
José Luis,
Para tener certeza absoluta que una operación de UPDATE o DELETE sólo afecta
a una fila de la tabla.
Un saludo,
"José Luis Capel" <
joseluis@iaicom.com> escribió en el mensaje
news:[email=
42f33a0b@ozsrvnegro.ozlan.local...]
42f33a0b@ozsrvnegro.ozlan.local...[/email]
> Ignacio,
>
> ¿Por que es necesaria una clave primaria en cada tabla para utilizar
> odbcDatasource?
>
> Saludos,
> José Luis Capel
¿Por que es necesaria una clave primaria en odbcDataSource?
Publicado: Vie Ago 05, 2005 12:43 pm
por joseluis
Ignacio,
>
> Para tener certeza absoluta que una operación de UPDATE o DELETE sólo afecta
> a una fila de la tabla.
>
Entonces, en una tabla de lineas de albaranes.... la clave primaria no
puede tener restricciones.... no puedo crear la clave así:
ALTER TABLE LIN_ALBARAN ADD CONSTRAINT PK_LIN_ALBARAN PRIMARY KEY
(lnalb_serie, lnalb_numero );
Por que no me dejará poner dos lineas...
Esa es una imposición del odbc o de los datasources ?
Saludos,
José Luis Capel
¿Por que es necesaria una clave primaria en odbcDataSource?
Publicado: Vie Ago 05, 2005 2:50 pm
por jasm.nospam
Jose Luis,
En una tabla de lineas de albaranes, facturas o lo que quieras tienes
que crear una columna linea del tipo autoincrementado que forme parte de
la clave primaria junto con el número de albarán.
Saludos
Jose Alfonso Suarez
José Luis Capel escribió:
> Ignacio,
>
>
>>
>> Para tener certeza absoluta que una operación de UPDATE o DELETE sólo
>> afecta a una fila de la tabla.
>>
>
> Entonces, en una tabla de lineas de albaranes.... la clave primaria no
> puede tener restricciones.... no puedo crear la clave así:
>
> ALTER TABLE LIN_ALBARAN ADD CONSTRAINT PK_LIN_ALBARAN PRIMARY KEY
> (lnalb_serie, lnalb_numero );
>
> Por que no me dejará poner dos lineas...
>
> Esa es una imposición del odbc o de los datasources ?
>
> Saludos,
> José Luis Capel
>
¿Por que es necesaria una clave primaria en odbcDataSource?
Publicado: Vie Ago 05, 2005 4:40 pm
por joseluis
José Alfonso,
>
> En una tabla de lineas de albaranes, facturas o lo que quieras tienes
> que crear una columna linea del tipo autoincrementado que forme parte de
> la clave primaria junto con el número de albarán.
¿Hay que hacer eso por nar*c*s?
Saludos y gracias,
José Luis Capel
PD: y como se indica que es autoincremental ???
¿Por que es necesaria una clave primaria en odbcDataSource?
Publicado: Vie Ago 05, 2005 6:08 pm
por jasm.nospam
Jose Luis,
>
> ¿Hay que hacer eso por nar*c*s?
Pues sí.
>
> Saludos y gracias,
> José Luis Capel
> PD: y como se indica que es autoincremental ???
En MySQL:
// Cabecera de albaranes
CREATE TABLE `c_albaran` (
`id` int(10) unsigned NOT NULL auto_increment,
`fecha` date default NULL,
`id_cliente` int(10) unsigned default NULL,
`total` decimal(11,0) default '2',
PRIMARY KEY (`id`)
) TYPE=MyISAM;
// Detalle de albaranes
CREATE TABLE `d_albarán` (
`id_albaran` int(10) unsigned NOT NULL default '0',
`linea` int(10) unsigned NOT NULL auto_increment,
`id_articulo` int(10) unsigned default NULL,
`cantikdad` int(10) unsigned default NULL,
`precio` decimal(9,0) default '2',
PRIMARY KEY (`id_albaran`,`linea`)
) TYPE=MyISAM;
En MS SQL Server:
// Cabecera de albaranes
CREATE TABLE `c_albaran` (
`id` int NOT NULL IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
`fecha` datetime default NULL,
`id_cliente` int unsigned default NULL,
`total` decimal(11,0) default '2',
PRIMARY KEY (`id`)
)
// Detalle de albaranes
CREATE TABLE `d_albarán` (
`id_albaran` int(10) unsigned NOT NULL default '0',
`linea` int(10) unsigned NOT NULL IDENTITY(1, 1),
`id_articulo` int(10) unsigned default NULL,
`cantikdad` int(10) unsigned default NULL,
`precio` decimal(9,0) default '2',
CONSTRAINT PK_d_lbaran PRIMARY KEY REFERENCES ( id_albaran, linea )
)
Un saludo,
Jose A. Suarez
¿Por que es necesaria una clave primaria en odbcDataSource?
Publicado: Vie Ago 05, 2005 6:34 pm
por joseluis
José Alfonso,
Gracias!!!!
Saludos,
José Luis Capel
Jose Alfonso Suárez Moreno escribió:
> Jose Luis,
>
>>
>> ¿Hay que hacer eso por nar*c*s?
>
> Pues sí.
>
>>
>> Saludos y gracias,
>> José Luis Capel
>> PD: y como se indica que es autoincremental ???
>
>
> En MySQL:
>
> // Cabecera de albaranes
> CREATE TABLE `c_albaran` (
> `id` int(10) unsigned NOT NULL auto_increment,
> `fecha` date default NULL,
> `id_cliente` int(10) unsigned default NULL,
> `total` decimal(11,0) default '2',
> PRIMARY KEY (`id`)
> ) TYPE=MyISAM;
>
>
> // Detalle de albaranes
> CREATE TABLE `d_albarán` (
> `id_albaran` int(10) unsigned NOT NULL default '0',
> `linea` int(10) unsigned NOT NULL auto_increment,
> `id_articulo` int(10) unsigned default NULL,
> `cantikdad` int(10) unsigned default NULL,
> `precio` decimal(9,0) default '2',
> PRIMARY KEY (`id_albaran`,`linea`)
> ) TYPE=MyISAM;
>
>
> En MS SQL Server:
>
> // Cabecera de albaranes
> CREATE TABLE `c_albaran` (
> `id` int NOT NULL IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
> `fecha` datetime default NULL,
> `id_cliente` int unsigned default NULL,
> `total` decimal(11,0) default '2',
> PRIMARY KEY (`id`)
> )
>
>
> // Detalle de albaranes
> CREATE TABLE `d_albarán` (
> `id_albaran` int(10) unsigned NOT NULL default '0',
> `linea` int(10) unsigned NOT NULL IDENTITY(1, 1),
> `id_articulo` int(10) unsigned default NULL,
> `cantikdad` int(10) unsigned default NULL,
> `precio` decimal(9,0) default '2',
> CONSTRAINT PK_d_lbaran PRIMARY KEY REFERENCES ( id_albaran, linea )
> )
>
> Un saludo,
>
> Jose A. Suarez
>
¿Por que es necesaria una clave primaria en odbcDataSource?
Publicado: Sab Ago 06, 2005 9:25 am
por ignacio
José Luis,
No se a que te refieres con 'tener restricciones'.
La regla más importante de la normalización de tablas 'Es que no pueden
existir dos filas iguales', y precisamente eso es lo que la clave primaria
suministra. Un control por el cual en base a los campos que tu le indiques
dos filas no pueden ser iguales en dichos campos. Por dicho motivo en el
caso de albaranes es muy normal tener que añadir un campo adicional para el
número de linea que de esta forma evita la duplicidad de filas.
Un saludo,
"José Luis Capel" <
joseluis@iaicom.com> escribió en el mensaje
news:42f34318$[email=
1@ozsrvnegro.ozlan.local...]
1@ozsrvnegro.ozlan.local...[/email]
> Ignacio,
>
>
>>
>> Para tener certeza absoluta que una operación de UPDATE o DELETE sólo
>> afecta a una fila de la tabla.
>>
>
> Entonces, en una tabla de lineas de albaranes.... la clave primaria no
> puede tener restricciones.... no puedo crear la clave así:
>
> ALTER TABLE LIN_ALBARAN ADD CONSTRAINT PK_LIN_ALBARAN PRIMARY KEY
> (lnalb_serie, lnalb_numero );
>
> Por que no me dejará poner dos lineas...
>
> Esa es una imposición del odbc o de los datasources ?
>
> Saludos,
> José Luis Capel
>
¿Por que es necesaria una clave primaria en odbcDataSource?
Publicado: Sab Ago 06, 2005 10:56 pm
por jasm.nospam
Ignacio,
Creo que Jose Luis esta confundido por usar la clausula CONSTRAINT (que
se usa tambien para las restricciones) para crear las claves primarias.
Obviamente una clave primaria es una restricción de la tabla (del tipo
UNIQUE)y que tiene la particularidad de ser el índice primario que
identifica de forma _univoca_ a cada fila de la tabla.
Un saludo,
Jose A. Suarez
Ignacio Ortiz escribió:
> José Luis,
>
> No se a que te refieres con 'tener restricciones'.
>
> La regla más importante de la normalización de tablas 'Es que no pueden
> existir dos filas iguales', y precisamente eso es lo que la clave primaria
> suministra. Un control por el cual en base a los campos que tu le indiques
> dos filas no pueden ser iguales en dichos campos. Por dicho motivo en el
> caso de albaranes es muy normal tener que añadir un campo adicional para el
> número de linea que de esta forma evita la duplicidad de filas.
>
> Un saludo,
>
> "José Luis Capel" <
joseluis@iaicom.com> escribió en el mensaje
> news:42f34318$[email=
1@ozsrvnegro.ozlan.local...]
1@ozsrvnegro.ozlan.local...[/email]
>
>>Ignacio,
>>
>>
>>
>>>Para tener certeza absoluta que una operación de UPDATE o DELETE sólo
>>>afecta a una fila de la tabla.
>>>
>>
>>Entonces, en una tabla de lineas de albaranes.... la clave primaria no
>>puede tener restricciones.... no puedo crear la clave así:
>>
>>ALTER TABLE LIN_ALBARAN ADD CONSTRAINT PK_LIN_ALBARAN PRIMARY KEY
>>(lnalb_serie, lnalb_numero );
>>
>>Por que no me dejará poner dos lineas...
>>
>>Esa es una imposición del odbc o de los datasources ?
>>
>>Saludos,
>>José Luis Capel
>>
>
>
>
¿Por que es necesaria una clave primaria en odbcDataSource?
Publicado: Lun Ago 08, 2005 11:35 am
por joseluis
Ignacio,
Como muy bien apunta José Alfonso, mi desconocimiento de SQL (que voy
aprendiendo a base de tortazos y manuales), hace que confunda conceptos.
Siento hacerte perder el tiempo en algunos casos.
Saludos,
José Luis Capel
Ignacio Ortiz escribió:
> José Luis,
>
> No se a que te refieres con 'tener restricciones'.
>
> La regla más importante de la normalización de tablas 'Es que no pueden
> existir dos filas iguales', y precisamente eso es lo que la clave primaria
> suministra. Un control por el cual en base a los campos que tu le indiques
> dos filas no pueden ser iguales en dichos campos. Por dicho motivo en el
> caso de albaranes es muy normal tener que añadir un campo adicional para el
> número de linea que de esta forma evita la duplicidad de filas.
>
> Un saludo,
>
> "José Luis Capel" <
joseluis@iaicom.com> escribió en el mensaje
> news:42f34318$[email=
1@ozsrvnegro.ozlan.local...]
1@ozsrvnegro.ozlan.local...[/email]
>
>>Ignacio,
>>
>>
>>
>>>Para tener certeza absoluta que una operación de UPDATE o DELETE sólo
>>>afecta a una fila de la tabla.
>>>
>>
>>Entonces, en una tabla de lineas de albaranes.... la clave primaria no
>>puede tener restricciones.... no puedo crear la clave así:
>>
>>ALTER TABLE LIN_ALBARAN ADD CONSTRAINT PK_LIN_ALBARAN PRIMARY KEY
>>(lnalb_serie, lnalb_numero );
>>
>>Por que no me dejará poner dos lineas...
>>
>>Esa es una imposición del odbc o de los datasources ?
>>
>>Saludos,
>>José Luis Capel
>>
>
>
>