-1

I have two table tblPerson and tblGender

the coulmn 'GenderID'in tblPerson is a foriegn key for the coulmn 'ID'(primary) in the tblGender

here is a default contarint

Alter Table tblPerson
    Add constraint DF_tblPerson_GenderID
    Default 4 for GENDERID 

now the insert query is

insert into tblPerson (ID,[Name],EmailID,GenderID)values
    (4,'Riya','riya@.com',2),
    (5,'Raj','raj@.com',3),
    (6,'Tisha','tisha@.com',2),
    (7,'Stephen','stephen@.com'); // here im getting the error 

now as you can see in the 7 I'm trying to add nothing in the genderid column and i thought it will be considered as a default constraint

but it is giving me error 'The number of columns for each row in a table value constructor must be the same.'

Vasant Raval
  • 257
  • 1
  • 12
  • 31
  • 1
    Please edit the tags and tell us what kind of RDBS. SQL Server? Oracle? SQLLite? They probably all do this differently – Nick.Mc Dec 08 '22 at 06:37

1 Answers1

1

This is a T-SQL (SQL Server) specific answer. You should tag your question with the actual RDBMS. Your code looks like T-SQL with the [ and ] but who knows....

Since you can't change the column list, you need to use the default keyword to trigger a default.

INSERT INTO tblPerson (ID, [Name], EmailID, GenderID) VALUES
    (4, 'Riya', 'riya@.com', 2),
    (5, 'Raj', 'raj@.com', 3),
    (6, 'Tisha', 'tisha@.com', 2),
    (7, 'Stephen', 'Stephen@.com',default)

See here for an example. This is a T-SQL answer for a SQLLite question.

How to insert default values in SQL table?

I can't find a clear example of this in the T-SQL docs. This has a very vague description

https://learn.microsoft.com/en-us/sql/t-sql/statements/insert-transact-sql?view=sql-server-ver16

Nick.Mc
  • 18,304
  • 6
  • 61
  • 91