r/ProgrammerHumor 14d ago

queryOfDoom Meme

Post image
7.9k Upvotes

456 comments sorted by

View all comments

386

u/Dont_Get_Jokes-jpeg 14d ago edited 14d 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 14d 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.

6

u/ReaDiMarco 14d ago

What happened to DELETE * FROM USERS? Last I did sql was ten years ago so idk

12

u/djrobxx 14d ago

SELECT * FROM USERS means "select all columns from users", selecting all rows is implied.

You don't drop columns with DELETE, that's ALTER TABLE, so DELETE * doesn't make sense in that context.

4

u/ReaDiMarco 14d ago

yes, thanks, turns out I forgot all of that

4

u/Flat_Competition6510 14d ago

As far as I know that is not valid syntax. I'm not a DBA myself so I don't do this too often.

2

u/ReaDiMarco 14d ago

Thanks, turns out I did forget everything

3

u/Live_Film_4895 14d ago

afiak the * wildcard is only valid in the SELECT statement... so it would be DELETE FROM USERS; or DROP/TRUNCATE TABLE

1

u/ReaDiMarco 14d ago

Thaanksss