Rodrigo Sakai wrote:
Hi, I have a question about how to insert data in composite types!
Imagine the exemple:
CREATE TYPE t_time AS (
a date,
b date
);
CREATE TABLE salary (
salary numeric(10,2),
t_date t_time
);
I know that if I want to insert data in the table SALARY I just have to do
like:
INSERT INTO salary VALUES (1000.00, '(2006/10/10, 2006/12/10)');
But if I have another table:
CREATE TABLE employee (
employee_id int,
name varchar(30),
emp_salary salary
)
I am thinking that with the salary type here you are thinking of your
salary table defined above?
If so and you want them in a separate table to record salary histories
then you want to create a foreign key to link them.
You would end up with -
CREATE TABLE employee (
employee_id int PRIMARY KEY,
name varchar(30)
);
CREATE TABLE salary (
emp_id int REFERENCES employee(employee_id) ON DELETE CASCADE,
salary numeric(10,2),
t_date t_time
);
then -
INSERT INTO salary VALUES (1, 1000.00, '(2006/10/10, 2006/12/10)');
Otherwise you will want to change the CREATE TABLE salary... to CREATE
TYPE salary...
Probably as
CREATE TYPE salary AS(
salary numeric(10,2),
a date,
b date
);
You can then
INSERT INTO employee VALUES
(1,'Hard Worker','(1000.00, 2006/10/10, 2006/12/10)');
--
Shane Ambler
[EMAIL PROTECTED]
Get Sheeky @ http://Sheeky.Biz
---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at
http://www.postgresql.org/about/donate