Skip to main content

Can you insert data into a view?

Yes, sometimes, but not always.

You can insert data into a view (INSERT, UPDATE, DELETE) only if it's based on a single table and doesn't contain complex constructs - such as JOIN, GROUP BY, DISTINCT, SUM(), and the like.

Example: it works

sql
CREATE VIEW simple_users AS SELECT id, name, email FROM users; INSERT INTO simple_users (id, name, email) VALUES (5, 'Ivan', 'ivan@example.com');

But if a view uses JOIN or aggregates, you can't insert data - the database can't tell which table to write to.

So simple views can be modified, while complex ones can only be read.

Short Answer

Interview ready
Premium

A concise answer to help you respond confidently on this topic during an interview.