Database Management
- How to Add an Index
- How to Create a Table
- How to Delete a Table
- How to Rename a Table
- How to Truncate a Table
- How to Duplicate a Table
- How to Add a Column
- How to Remove a Column
- How to Change a Column Name
- How to Set a Column with Default Value
- How to Remove a Default Value to a Column
- How to Add a Not Null Constraint
- How to Remove a Not Null Constraint
- How to Drop an Index
- How to Create a View
- How to Drop a View
- How to Alter Sequence
Dates and Times
Analysis
- How to Use Coalesce
- How to Calculate Percentiles
- How to Get the First Row per Group
- How to Avoid Gaps in Data
- How to Do Type Casting
- How to Write a Common Table Expression
- How to Import a CSV
- How to Compare Two Values When One is Null
- How to Write a Case Statement
- How to Query a JSON Column
- How to Have Multiple Counts
- How to Calculate Cumulative Sum-Running Total
How to Set a Column with Default Value in MySQL
In MySQL, setting a default value for a column ensures that a predefined value is inserted into the column when no value is provided during an insert operation. This can be useful in cases where a column should have a common default value such as a status or a date.
Step 1: Creating a Table with a Default Column Value
Let’s begin by creating a table that includes a column with a default value. Below is the SQL syntax for creating such a table:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100),
status VARCHAR(10) DEFAULT 'active'
);
In the example above, the status column is given a default value of 'active'. This means if no value is provided for the status column during an insert, it will automatically be set to 'active'.
Step 2: Inserting Data Without Specifying the Default Column
Now, let’s see how this works when we insert data into the users table:
INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com');
In this case, the status column will automatically be set to 'active', as specified in the table definition.
Step 3: Altering an Existing Table to Add a Default Value
If you have an existing table and want to add a default value to an existing column, you can use the ALTER TABLE statement. Below is an example of how to add a default value to an existing column:
ALTER TABLE users
MODIFY status VARCHAR(10) DEFAULT 'inactive';
After running the above command, any new rows inserted into the table without specifying a value for status will default to 'inactive'.
Step 4: Setting Default Values in Django Models
In Django, you can set default values for fields directly in your models using the default attribute. Here’s an example of how to define a default value in a Django model:
from django.db import models
class User(models.Model):
name = models.CharField(max_length=100)
email = models.EmailField()
status = models.CharField(max_length=10, default='active')
In this Django model, the status field will have a default value of 'active', just like in the MySQL table.
Automate MySQL reporting with DataReportive
Turn your MySQL queries into scheduled reports delivered to your team or customers.
Conclusion
Setting default values for columns in MySQL is a simple and effective way to ensure that your tables have predefined values when no input is provided. It’s particularly useful in cases where certain columns should always have a default value for consistency. With Django, you can easily mirror this behavior in your models by using the default parameter.