es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿El valor auto_increment es menor que el ID máximo en la tabla?

Estoy usando Mysql 5.6.46.

Y la ejecución final de sql en mi código es
REPLACE … .

Estoy utilizando un método de subprocesos múltiples para insertar datos en lote en mi tabla de base de datos.

La pregunta es que el AUTO_INCREMENT es inferior al ID máximo de mi tabla, y luego no puedo escribir datos en esta tabla ya que siempre aparece el error Entrada duplicada ‘31245418’ para la clave ‘PRIMARY’

SELECT AUTOINCREMENT 
FROM informationschema.tables WHERE tableschema='db' AND tablename='table';

31245419

SELECT id FROM spenddailylevel ORDER BY id DESC LIMIT 1

31247125

¿Cómo puedo evitar este problema? Gracias

Proporcionaré información detallada si es necesario

Más información actualizada

CREATE TABLE spend_daily_level (
  id int(11) NOT NULL AUTO_INCREMENT,
  active tinyint(1) NOT NULL ,
  created_time datetime(6) NOT NULL ,
  updated_time datetime(6) NOT NULL ,
  date date NOT NULL ,
  system_value decimal(16,2) NOT NULL ,
  checked_value decimal(16,2) NOT NULL ,
  account_id int(11) NOT NULL ,
  sale_leader_id int(11) DEFAULT NULL ,
  account_status tinyint(3) DEFAULT '1' ,
  PRIMARY KEY (id),
  UNIQUE KEY spend_daily_level_date_account_id_f38b1186_uniq (date,account_id),
  KEY spend_daily_level_account_id_f6df4f99_fk_account_id (account_id),
  KEY sale_leader_id (sale_leader_id),
  KEY date_active (active,date),
  CONSTRAINT spend_daily_level_ibfk_1 FOREIGN KEY (account_id) REFERENCES account (id),
  CONSTRAINT spend_daily_level_ibfk_2 FOREIGN KEY (sale_leader_id) REFERENCES sale_leader (id)
) ENGINE=InnoDB AUTO_INCREMENT=31245419 DEFAULT CHARSET=utf8 COMMENT='daily_spend'

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que estás experimentando un problema con el valor AUTO_INCREMENT siendo menor que el ID máximo de tu tabla. Para evitar este problema, puedes restablecer el valor AUTO_INCREMENT a uno más alto que el ID máximo de tu tabla. Puedes hacer esto ejecutando la siguiente consulta:

    ALTER TABLE spend_daily_level AUTO_INCREMENT = 31247126;
    

    Esto restablecerá el valor AUTO_INCREMENT a uno más alto que el ID máximo de tu tabla, evitando así el problema de Entrada duplicada '31245418' para la clave 'PRIMARY'.

Comments are closed.