Odoo Help


How to use sql constraints in odoo

on 5/12/16, 1:11 AM 3,192 views

Hi im kiruba. Im new in odoo 9. I need how to ssql constraints are using in odoo. Let know any solution ur side

Kalpana Hemnani
On 5/12/16, 3:38 AM
Hi Kirubanidhi,
SQL constraints are used to specify rules for the data in a table.
If there is any violation between the constraint and the data action, the action is aborted by the constraint.
You can create constrain in your defined object as below:
list of (name, sql_definition, message) triples defining SQL constraints to execute when generating the backing table
For more reference check:https://www.odoo.com/documentation/8.0/reference/orm.html#module-openerp.api

course name  all ready exits

_sql_constraints = [ ('course_name',

                                     'UNIQUE (course_name)',

                                    'Course all already exists'), ]

Neha Patel (nat)
On 1/19/17, 6:02 AM

This code is for identify unique student id.If any person write duplicate student which is already in the database it gives an error like "Student ID is already exists...!"

_sql_constraints = [

                 ('stud_id_unique', 'unique (stud_id)', 'Student ID is already exists...!')


On 5/13/16, 1:48 AM

_sql_constraints = [

('email_uniq', 'unique(email)', 'Email id is unique change your custom email id'),



def validate_email(self):

for obj in self:

if re.match("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$", obj.email) == None:

raise ValidationError("Please Provide valid Email Address: %s" % obj.email)

return True

Both constraints are working fine in my module.

On 5/12/16, 6:56 AM

you can use @api.constrains too


Akhil P Sivan

--Akhil P Sivan--

| 5 4 7
Kochi, India
--Akhil P Sivan--

Interested in exploring Odoo both technically & functionality wise.

email-id : akhilpsivan01@gmail.com

Akhil P Sivan
On 5/12/16, 5:48 AM


You may refer any addon in Odoo 9.0. 

For eg, in account module, goto account >> models >> account.py

_sql_constraints = [

('code_company_uniq', 'unique (code,company_id)', 'The code of the account must be unique per company !')


You can refer the usage.

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

1 follower(s)


Asked: 5/12/16, 1:11 AM
Seen: 3192 times
Last updated: 1/30/17, 8:09 AM