Bird
Raised Fist0
SQLquery~10 mins

AUTO_INCREMENT behavior in SQL - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a table with an auto-incrementing primary key.

SQL
CREATE TABLE users (id INT [1] PRIMARY KEY, name VARCHAR(50));
Drag options to blanks, or click blank then click option'
AVARCHAR(10)
BAUTO_INCREMENT
CINTEGER
DPRIMARY KEY
Attempts:
3 left
💡 Hint
Common Mistakes
Using just INTEGER without AUTO_INCREMENT.
Putting PRIMARY KEY twice.
Using VARCHAR for an auto-incrementing number.
2fill in blank
medium

Complete the code to insert a new user without specifying the auto-increment column.

SQL
INSERT INTO users (name) VALUES ([1]);
Drag options to blanks, or click blank then click option'
ANULL
B1
C'Alice'
D'id'
Attempts:
3 left
💡 Hint
Common Mistakes
Trying to insert a value for the auto-increment column.
Using NULL instead of a name string.
Inserting the column name instead of a value.
3fill in blank
hard

Fix the error in the code to reset the auto-increment counter to 1.

SQL
ALTER TABLE users [1] = 1;
Drag options to blanks, or click blank then click option'
AAUTO_INCREMENT
BRESTART
CINCREMENT
DRESET
Attempts:
3 left
💡 Hint
Common Mistakes
Using RESET or RESTART which are not valid keywords here.
Trying to use INCREMENT instead of AUTO_INCREMENT.
4fill in blank
hard

Fill both blanks to create a table where the auto-increment starts at 1000.

SQL
CREATE TABLE orders (order_id INT [1] PRIMARY KEY) [2];
Drag options to blanks, or click blank then click option'
AAUTO_INCREMENT
BSTART WITH 1000
CAUTO_INCREMENT=1000
DINCREMENT BY 10
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'START WITH' or 'INCREMENT BY 10' which are not valid in this SQL dialect.
Putting the starting value inside the column definition.
5fill in blank
hard

Fill in the blanks to select the next auto-increment value, insert a new row, and then get the last inserted id.

SQL
SELECT [1] FROM information_schema.tables WHERE table_name = 'users';
INSERT INTO users (name) VALUES ('Bob');
SELECT [2]();
Drag options to blanks, or click blank then click option'
AAUTO_INCREMENT
BLAST_INSERT_ID
DMAX(id)
Attempts:
3 left
💡 Hint
Common Mistakes
Using MAX(id) instead of LAST_INSERT_ID() to get the last inserted id.
Confusing AUTO_INCREMENT keyword with function names.

Practice

(1/5)
1. What does the AUTO_INCREMENT attribute do in a SQL table?
easy
A. Encrypts the data in the column
B. Deletes duplicate rows automatically
C. Automatically assigns a unique number to new rows
D. Prevents any new rows from being added

Solution

  1. Step 1: Understand the purpose of AUTO_INCREMENT

    AUTO_INCREMENT is used to generate a unique number for each new row automatically, usually for primary keys.
  2. Step 2: Compare options with this behavior

    Only Automatically assigns a unique number to new rows describes this behavior correctly; others describe unrelated actions.
  3. Final Answer:

    Automatically assigns a unique number to new rows -> Option C
  4. Quick Check:

    AUTO_INCREMENT = unique number assignment [OK]
Hint: AUTO_INCREMENT means unique numbers auto-assigned [OK]
Common Mistakes:
  • Thinking AUTO_INCREMENT deletes duplicates
  • Confusing AUTO_INCREMENT with encryption
  • Assuming AUTO_INCREMENT blocks inserts
2. Which of the following is the correct syntax to create a table with an AUTO_INCREMENT column in SQL?
easy
A. CREATE TABLE users (id INT INCREMENT_AUTO, name VARCHAR(50), PRIMARY KEY(id));
B. CREATE TABLE users (id INT AUTO_INCREMENT, name VARCHAR(50), PRIMARY KEY(id));
C. CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY, name VARCHAR(50));
D. CREATE TABLE users (id INT AUTO_INCREMENTED, name VARCHAR(50), PRIMARY KEY(id));

Solution

  1. Step 1: Review correct AUTO_INCREMENT syntax

    The correct syntax is to declare the column as INT AUTO_INCREMENT and set it as PRIMARY KEY.
  2. Step 2: Check each option for syntax errors

    CREATE TABLE users (id INT AUTO_INCREMENT, name VARCHAR(50), PRIMARY KEY(id)); matches the correct syntax. Options B, C, and D use invalid keywords or misplaced PRIMARY KEY.
  3. Final Answer:

    CREATE TABLE users (id INT AUTO_INCREMENT, name VARCHAR(50), PRIMARY KEY(id)); -> Option B
  4. Quick Check:

    Correct AUTO_INCREMENT syntax = CREATE TABLE users (id INT AUTO_INCREMENT, name VARCHAR(50), PRIMARY KEY(id)); [OK]
Hint: AUTO_INCREMENT goes with INT and PRIMARY KEY [OK]
Common Mistakes:
  • Using wrong keywords like INCREMENT_AUTO
  • Placing PRIMARY KEY inside column definition incorrectly
  • Adding suffixes like AUTO_INCREMENTED
3. Given the table products with id INT AUTO_INCREMENT PRIMARY KEY and name VARCHAR(50), what will be the id values after these inserts?
INSERT INTO products (name) VALUES ('Pen');
INSERT INTO products (name) VALUES ('Pencil');
INSERT INTO products (name) VALUES ('Eraser');
medium
A. [1, 2, 3]
B. [0, 1, 2]
C. [NULL, NULL, NULL]
D. [1, 1, 1]

Solution

  1. Step 1: Understand AUTO_INCREMENT numbering

    Each insert without specifying id gets the next unique number starting from 1 by default.
  2. Step 2: Apply to the three inserts

    First insert gets 1, second gets 2, third gets 3 as id values.
  3. Final Answer:

    [1, 2, 3] -> Option A
  4. Quick Check:

    Sequential AUTO_INCREMENT IDs = [1, 2, 3] [OK]
Hint: AUTO_INCREMENT starts at 1 and increments by 1 [OK]
Common Mistakes:
  • Assuming IDs start at 0
  • Expecting NULL values for AUTO_INCREMENT
  • Thinking IDs repeat for each insert
4. You have a table orders with order_id INT AUTO_INCREMENT PRIMARY KEY. You try to insert a row with order_id = 0 manually, but get an error. What is the likely cause?
medium
A. You cannot insert a value manually into an AUTO_INCREMENT column without special syntax
B. The table does not allow any inserts
C. The column is not set as PRIMARY KEY
D. The AUTO_INCREMENT value must be a string

Solution

  1. Step 1: Understand manual inserts on AUTO_INCREMENT columns

    By default, inserting a value manually into an AUTO_INCREMENT column can cause errors unless allowed explicitly.
  2. Step 2: Analyze the error cause

    The error likely occurs because the database expects to manage the AUTO_INCREMENT values automatically, and manual insertion conflicts with this.
  3. Final Answer:

    You cannot insert a value manually into an AUTO_INCREMENT column without special syntax -> Option A
  4. Quick Check:

    Manual insert on AUTO_INCREMENT needs care = You cannot insert a value manually into an AUTO_INCREMENT column without special syntax [OK]
Hint: AUTO_INCREMENT columns usually reject manual values [OK]
Common Mistakes:
  • Assuming inserts are blocked entirely
  • Confusing PRIMARY KEY with AUTO_INCREMENT behavior
  • Thinking AUTO_INCREMENT accepts strings
5. A table employees has emp_id INT AUTO_INCREMENT PRIMARY KEY. After deleting the row with emp_id = 3, you insert a new row without specifying emp_id. What will be the emp_id of the new row?
hard
A. 3
B. NULL
C. 1
D. The next highest number after the last inserted ID

Solution

  1. Step 1: Understand AUTO_INCREMENT behavior after deletions

    Deleting a row does not reset or reuse the deleted AUTO_INCREMENT value by default.
  2. Step 2: Determine the new ID assigned

    The new row gets the next number after the highest previously assigned ID, not the deleted one.
  3. Final Answer:

    The next highest number after the last inserted ID -> Option D
  4. Quick Check:

    Deleted IDs are not reused automatically = The next highest number after the last inserted ID [OK]
Hint: AUTO_INCREMENT never reuses deleted IDs by default [OK]
Common Mistakes:
  • Assuming deleted IDs get reused automatically
  • Thinking new inserts reset to 1
  • Expecting NULL for AUTO_INCREMENT columns
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard