Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-08-2007
ivansito ivansito is offline
Registrado
 
Registrado: ago 2007
Posts: 3
Poder: 0
ivansito Va por buen camino
Unhappy Mensaje para no duplicar la clave primaria de la base de datos

Holas a todos, tengo un problema con una aplicación web que creado, funciona todo OK pero cuando inserto una serie de datos que van a una tabla y en esa serie de datos duplico la clave primaria y se sustituye por la anterior, quisiera saber si existe algún código que te avise para cuando intentes duplicar la clave primaria.
Muxas gracias por su atención.
Un saludo...
Responder Con Cita
  #2  
Antiguo 01-08-2007
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Si estas haciendo un insert en un motor ANSI SQL no puedes insertar claves repetidas, fallará automáticamente, y esa puede ser una de las formas de "darse cuenta".

¿Que motor estas usando?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 01-08-2007
ivansito ivansito is offline
Registrado
 
Registrado: ago 2007
Posts: 3
Poder: 0
ivansito Va por buen camino
Cita:
Empezado por delphi.com.ar
Si estas haciendo un insert en un motor ANSI SQL no puedes insertar claves repetidas, fallará automáticamente, y esa puede ser una de las formas de "darse cuenta".

¿Que motor estas usando?
Estoy usando un paquete, el phpmyadmin.
Lo he probado lo que hace es sustituir por la anterior, existe alguna forma para que no lo haga directamente? algo que te diga que esa clave primaria ya existe?¿?

Muchas gracias.
Responder Con Cita
  #4  
Antiguo 01-08-2007
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Com MySql??.. que motor de base de datos???


¿Puedes mostrarnos el código del insert y de ser posible el script de creación de la tabla?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 01-08-2007
ivansito ivansito is offline
Registrado
 
Registrado: ago 2007
Posts: 3
Poder: 0
ivansito Va por buen camino
Cita:
Empezado por delphi.com.ar
Com MySql??.. que motor de base de datos???


¿Puedes mostrarnos el código del insert y de ser posible el script de creación de la tabla?
El motor que utilizo es phpmyadmin. No lo siento no lo tengo en estos momentos aqui, pero lo puedo explicar con un ejemplo.
Tengo en php una consulta sql para introducir datos a la base de datos, si la clave primaria la he puesto con un codigo de alumno existente por otra aplicación y cuando quiera insertar otro alumno y se me vaya el dedo y ponga el mismo numero de alumno que otro ya existente en la aplicación web pero el alumno es diferente se sustituiria!!! existe algo para que al introducir un codigo existente te salte un error?¿?
(NO se puede insertar este alumno ya que existe otro alumno con el mismo codigo).
Responder Con Cita
  #6  
Antiguo 01-08-2007
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Este script es para demostrarte como si existe un registro con la misma clave primaria, en este caso ID_ALUMNO, el mismo motor (MySql) produce un error.
Código SQL [-]
DROP DATABASE IF EXISTS DBPRUEBA;

CREATE DATABASE DBPRUEBA;

USE DBPRUEBA;

CREATE TABLE ALUMNO
 (
   ID_ALUMNO MEDIUMINT UNSIGNED NOT NULL,
   DESCRIPCION varchar(255),

   CONSTRAINT PK_ALUMNO PRIMARY KEY (ID_ALUMNO) /* Clave Primaria */
  )
  COMMENT = 'Pozos Acumulados';
  
INSERT INTO ALUMNO (ID_ALUMNO, DESCRIPCION) VALUES (1, 'Juan Perez');

INSERT INTO ALUMNO (ID_ALUMNO, DESCRIPCION) VALUES (2, 'Pepe Sháncez');

INSERT INTO ALUMNO (ID_ALUMNO, DESCRIPCION) VALUES (2, 'Fallido');

Me interesaría ver que es lo que estas haciendo, dudo que sea algo similar a lo que te estoy mostrando, para poder guiarte. Sino vamos a trabajar sobre suposiciones y hay mucho para suponer.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #7  
Antiguo 01-08-2007
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
lo que tambien puedes hacer es que cuando ingreses el codigo del alumno, consultes en la Tabla si existe un registro con ese codigo.. esto es como para no escribir todos los datos y cuando quieras almacenar te diga que ya existe el codigo y tienes escribir todo de nuevo...
__________________
BlueSteel
Responder Con Cita
  #8  
Antiguo 02-08-2007
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Cita:
Empezado por ivansito
quisiera saber si existe algún código que te avise para cuando intentes duplicar la clave primaria.
Muxas gracias por su atención.
Un saludo...
jeje, claro que sí, visita este link....

Hasta Luego .-
__________________
No todo es como parece ser...
Responder Con Cita
  #9  
Antiguo 08-08-2007
Avatar de maximo_nashir
maximo_nashir maximo_nashir is offline
Miembro
 
Registrado: ene 2004
Ubicación: República dominicana
Posts: 55
Poder: 21
maximo_nashir Va por buen camino
Thumbs up Hola, entiendo que es algo así lo que Ivansito quiere...

Cita:
Empezado por ivansito Ver Mensaje
quisiera saber si existe algún código que te avise para cuando intentes duplicar la clave primaria.
Muxas gracias por su atención.
Un saludo...
//Conectandome ini
$link = mysql_connect("localhost", "usuario", "clave");
mysql_select_db("midb", $link);
//Conectandome Fini

$Estudiante = $_POST['EdEstudiante'];
//leyendo datos de la tabla estudiantes ini
$result = mysql_query("SELECT ESTUDIANTE FROM Taestudiantes WHERE ESTUDIANTE = '$Estudiante'");
$row = mysql_fetch_row($result);
//leyendo datos de la tabla estudiantes Fini
$Rrow = "$row[0]";

if ($Estudiante == $Rrow)
{
echo 'No lo puede agregar, porque este Estudiante ya existe';
}
else
{
echo 'Se insertó satisfactoriamente';
}
__________________
:::
:::
:::
Costoso es el saber que compras con la experiencia y más costoso el que te falta comprar
:::
:::
:::
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
modificar clave primaria en interbase manolop Conexión con bases de datos 0 24-06-2005 10:31:42
Ayuda Con Clave Primaria pablo2244 MySQL 4 30-05-2005 21:49:01
cambiar la clave primaria con SQL User_Baja_2 SQL 8 18-06-2004 08:41:31
Cambiar clave primaria pinoxito Firebird e Interbase 7 13-01-2004 21:51:26
cambiar una clave primaria User_Baja_2 SQL 3 06-10-2003 18:03:38


La franja horaria es GMT +2. Ahora son las 09:07:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi