valores sentencia rango por operaciones lista fechas ejemplos consulta con clausula sql sql-delete records

sentencia - operaciones con fechas sql



Registros de eliminación SQL dentro de un rango específico (7)

Mi preocupación es que si digo eliminar todo con una ID (> 79 AND <296), entonces, literalmente, puede borrar toda la tabla ...

Eso no sucederá porque tendrás una cláusula Where. Lo que ocurre es que si tiene una declaración como delete * from Table1 where id between 70 and 1296 , lo primero que hará el procesador de consultas sql es escanear la tabla y buscar esos registros en ese rango y luego aplicar una eliminación.

Esta pregunta ya tiene una respuesta aquí:

Esta es probablemente una pregunta muy simple para alguien con experiencia, pero solo quería saber la forma más segura de eliminar un par de cientos de registros en una tabla SQL que se encuentra entre un rango específico.

Por ejemplo, necesito eliminar filas con una ID entre 79 y 296:

Mi preocupación es que si digo eliminar todo con una ID (> 79 AND <296), entonces puede literalmente borrar toda la tabla.


Dio una ID de condición (> 79 y <296) y la respuesta es:

delete from tab where id > 79 and id < 296

esto es lo mismo que:

delete from tab where id between 80 and 295

si id es un número entero.

Todos respondieron:

delete from tab where id between 79 and 296

esto es lo mismo que:

delete from tab where id => 79 and id <= 296

Importa la diferencia


Puede usarlo de esta forma porque id no puede ser secuencial en todos los casos.

SELECT * FROM `ht_news` LIMIT 0 , 30


Si lo escribe como el siguiente en el servidor SQL, entonces no habría peligro de borrar la tabla de la base de datos a menos que todos los valores en esa tabla realmente estén entre esos valores:

DELETE FROM [dbo].[TableName] WHERE [TableName].[IdField] BETWEEN 79 AND 296


si usas el servidor Sql

delete from Table where id between 79 and 296

Después de su edición: ahora aclaró que quiere:

ID (>79 AND < 296)

Entonces usa esto:

delete from Table where id > 79 and id < 296


también puede simplemente cambiar su eliminación a una selección *

y prueba tu selección

los registros seleccionados serán los mismos que los eliminados

También puede envolver su extracto en un inicio / reversión si no está seguro: pruebe la declaración y, si todo está bien, elimine la reversión.

por ejemplo

SELECCIONAR * FROM tabla WHERE id ENTRE 79 Y 296

mostrará todos los registros que coincidan con where, si son los deseos que ''realmente'' desea eliminar y luego use

BORRAR DE LA tabla DONDE id ENTRE 79 Y 296

También puede crear un desencadenador / que atrape las eliminaciones y las coloca en una tabla de historial

entonces, si borras algo por error, siempre puedes recuperarlo

(Mantenga sus registros de la tabla de historia no más de 6 meses o las reglas de negocios)


DELETE FROM table_name WHERE id BETWEEN 79 AND 296;