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;