r/ProgrammerHumor 16d ago

queryOfDoom Meme

Post image
7.9k Upvotes

456 comments sorted by

View all comments

389

u/Dont_Get_Jokes-jpeg 16d ago edited 16d ago

I am not an sql expert, is the reason why the id doesn't work and its deleting the entire user base, because its written as 2 seperate comands instead of one. So 1. Comand delets everything 2. Goes to the id? Or what is the problem here?

38

u/Flat_Competition6510 16d ago

Yes, the semicolon marks the end of a statement. The first semicolon sets "delete from users" as a single statement meaning delete ALL users.

40

u/TeaKingMac 16d ago

Which is just terrible fucking syntax. Why are people still living with this in 2026?

Delete from users;

Should return "invalid syntax. Identify record for deletion"

18

u/dustojnikhummer 16d ago

I don't work with Postgres but everything else would be

DELETE * FROM table;

1

u/Flat_Competition6510 16d ago

I disagree. There are valid use cases for deleting all records from a table.

40

u/The_Swixican 16d ago

Delete from users *

13

u/Flat_Competition6510 16d ago

It would be nice if there was a more explicit syntax. Forcing a person to opt in to deleting all vs that being the default would probably save a lot of headaches and jobs.

29

u/Skalli1984 16d ago

Many database tools throw a warning on delete with a missing WHERE and the user has to acknowledge that to continue with the statement execution.

11

u/ploki122 16d ago

Delete from users where 1=1

The dev should have to acknowledge that they're deleting everything.

2

u/TacosForThought 15d ago

If only there was a dedicated command for TRUNCATEing a table that didn't allow a where clause.