Actually, MySQL and MaxDB don't have a common code ancestry. MaxDB is based on SAPDB.
Anyway, Assuming they haven't changed this, autoincrement fields in Max/SapDB is called "SERIAL".
So you create an integer field and use SERIAL(1) as the "default".
CREATE TABLE "SA"."TEST"
(
"ROWID" Integer NOT NULL DEFAULT SERIAL (1),
PRIMARY KEY ("ROWID")
)
And to anticipate the next question:
To get the ID of the record you just inserted use:
"SELECT TEST.CURRVAL FROM DUAL"


Take care,

John

H wrote:

I have the 2 questions pertaining to autoincrement fields.

1) MySql has an autoincrement field type but MAXDB seems not to? Is this true? I kinda thought that MySql and MaxDB had the same code-ancestry so why don't we have that feature in MAXDB?

2) If question 1 is true is the only way to get the autoincrement functionality in MaxDB is via a trigger and an sequence object... If this is true could someone please supply a simple working example. I used to code like this in Oracle but have long ago forgotten the syntax. I looked on the archive and found a thead of this discussion pasted below but the thread NEVER showed a working example.

Thanks in advance,


<<< Start of thread pertaining to Autoincrement field>> Scott, Niall wrote:



Hi

I need to create a autoincrement field but I can't use a fixed data type


for reasons I won't go into.


I need the field to be type integer.
I thought that I would create a sequence then call it in a trigger thus

Create table test1(
teid integer,
aValue Char(10)
)
--
create sequence test1seq  increment by 1 start with 1
--
CREATE TRIGGER test1_update FOR test1 AFTER INSERT EXECUTE (
UPDATE dbasys.test1 set teid=test1seq.Nextval;
)
--

I tried various trigger code but the above was the only one that didn't


give errors



I then used Insert into test1 (aValue) VALUES('Test 1') but all I get is a null value in teid.

I have come to SAP DB from Interbase where the trigger code would be
CREATE TRIGGER test1_update FOR TEST1
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
new.teid=GEN_ID(test1seq,1);
END


But I can't figure out how to do the same in SAPDB


Cheers






---------------------------------
Post your free ad now! Yahoo! Canada Personals





--
MaxDB Discussion Mailing List
For list archives: http://lists.mysql.com/maxdb
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to