Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Variable Declaration and Assignment in PostgreSQL
📖 Scenario: You are working with a PostgreSQL database and want to store some temporary values inside a block of code to use later. This is like keeping notes on a sticky note while you work.
🎯 Goal: Create a simple PostgreSQL anonymous code block where you declare a variable called counter, assign it a starting value, then update it by adding a number.
📋 What You'll Learn
Declare a variable named counter of type integer
Assign the value 10 to counter
Add 5 to counter using an assignment
Use a PostgreSQL anonymous code block with DO and BEGIN ... END
💡 Why This Matters
🌍 Real World
Database developers often need to store temporary values during complex operations or scripts. Variables help keep track of these values inside procedural code.
💼 Career
Knowing how to declare and assign variables in PostgreSQL is essential for writing stored procedures, triggers, and scripts that automate database tasks.
Progress0 / 4 steps
1
Declare the variable
Write a PostgreSQL anonymous code block starting with DO $$ and BEGIN. Inside it, declare a variable called counter of type integer. End the block with END $$;.
PostgreSQL
Hint
Use the DECLARE section inside the DO $$ ... END $$; block to declare variables.
2
Assign an initial value
Inside the BEGIN block, assign the value 10 to the variable counter using the := operator.
PostgreSQL
Hint
Use counter := 10; to assign the value inside the BEGIN block.
3
Update the variable value
Add 5 to the current value of counter by updating it with counter := counter + 5; inside the BEGIN block after the initial assignment.
PostgreSQL
Hint
Use counter := counter + 5; to add 5 to the existing value.
4
Complete the block
Ensure the entire PostgreSQL anonymous block is correctly structured with DO $$, DECLARE, BEGIN, the variable declaration, assignments, and ends with END $$;.
PostgreSQL
Hint
Check that all parts of the block are present and in the right order.
Practice
(1/5)
1. What is the correct way to declare a variable named counter of type integer in a PL/pgSQL block?
easy
A. DECLARE counter integer;
B. counter integer;
C. DECLARE counter integer = 0;
D. counter := integer;
Solution
Step 1: Understand variable declaration syntax
In PL/pgSQL, variables are declared inside a DECLARE section without repeating the DECLARE keyword for each variable. The correct syntax is: variable_name data_type;
Step 2: Identify the correct declaration
The line counter integer; correctly declares the variable inside the DECLARE block. Including the DECLARE keyword before each variable is incorrect.
Final Answer:
counter integer; -> Option B
Quick Check:
Declare variables inside DECLARE block without repeating DECLARE [OK]
Hint: Declare variables inside DECLARE block with type only [OK]
Common Mistakes:
Omitting DECLARE keyword
Assigning value during declaration without :=
Using := in declaration line
2. Which of the following is the correct syntax to assign the value 10 to a variable count after it has been declared in PL/pgSQL?
easy
A. count = 10;
B. count == 10;
C. SET count = 10;
D. count := 10;
Solution
Step 1: Recall assignment operator in PL/pgSQL
PL/pgSQL uses := to assign values to variables, not = or ==.
Step 2: Identify correct assignment syntax
count := 10; uses count := 10; which is the correct way to assign a value.
Final Answer:
count := 10; -> Option D
Quick Check:
Use := for assignment in PL/pgSQL [OK]
Hint: Use := to assign values to variables [OK]
Common Mistakes:
Using = instead of :=
Using SET keyword incorrectly
Using == like in other languages
3. Consider the following PL/pgSQL block:
DECLARE
total integer := 5;
BEGIN
total := total + 3;
RAISE NOTICE '%', total;
END;
What will be the output when this block runs?
medium
A. 8
B. 5
C. 3
D. Error: variable not initialized
Solution
Step 1: Analyze initial value assignment
The variable total is declared and initialized to 5.
Step 2: Calculate the new value after addition
The statement total := total + 3; adds 3 to 5, resulting in 8.
Final Answer:
8 -> Option A
Quick Check:
5 + 3 = 8 [OK]
Hint: Add assigned values step-by-step to find final result [OK]
Common Mistakes:
Ignoring initial value and assuming zero
Confusing assignment operator with equality
Expecting error due to missing BEGIN
4. Identify the error in the following PL/pgSQL code snippet:
DECLARE
name text;
BEGIN
name = 'Alice';
END;
medium
A. Incorrect assignment operator used
B. Missing DECLARE keyword
C. Variable name not declared
D. Missing semicolon after BEGIN
Solution
Step 1: Check variable declaration
The variable name is declared correctly with type text.
Step 2: Check assignment syntax
The assignment uses = which is incorrect in PL/pgSQL; it should use :=.
Final Answer:
Incorrect assignment operator used -> Option A
Quick Check:
Use := for assignment, not = [OK]
Hint: Use := for assignment, not = [OK]
Common Mistakes:
Using = instead of :=
Forgetting semicolon after assignment
Confusing declaration and assignment syntax
5. You want to declare two variables a and b as integers, assign a the value 4, and then assign b the value of a multiplied by 3. Which of the following PL/pgSQL code snippets correctly does this?
hard
A. DECLARE
b integer := a * 3;
a integer := 4;
BEGIN
NULL;
END;
B. DECLARE
a integer;
b integer;
BEGIN
a = 4;
b = a * 3;
END;
C. DECLARE
a integer;
b integer;
BEGIN
a := 4;
b := a * 3;
END;
D. DECLARE
a integer := 4;
b integer;
BEGIN
b = a * 3;
END;
Solution
Step 1: Check variable declaration and initialization
DECLARE
a integer;
b integer;
BEGIN
a := 4;
b := a * 3;
END; declares both variables without initial values, then assigns values inside the BEGIN block using correct assignment operator :=.
Step 2: Verify assignment and calculation
It assigns a := 4; and then b := a * 3;, which correctly sets b to 12.
Final Answer:
correctly declares and assigns variables with := -> Option C
Quick Check:
Declare first, assign with := inside BEGIN [OK]
Hint: Declare variables first, assign values inside BEGIN with := [OK]
Common Mistakes:
Using = instead of :=
Assigning values during declaration with expressions