|
> date: Fri, 22 Jul 2005 07:45:53 -0500
> from: "Joe Pluta" <joepluta@xxxxxxxxxxxxxxxxx>
> subject: RE: SQL CREATE TABLE command - ALIAS
>
> Thanks, Birgitta!
>
> It turns out this is not compatible with any other database, though. Is
> there a way to set those names later? Maybe create the table with the
> long name, then later ALTER the column to have a short and long name?
>
> I can work around it, but I am trying to write machine-independent
> routines and it's pretty difficult.
>
> Joe
Joe,
Yes, this is the way I do it. Below is some standard internal
documentation and then an example of a CREATE TABLE block that we use.
These came right out of a production text file:
<CODE>
/* Database Generation Document for MASIBP
Template Checklist for each table:
==========================
1. Documentation
2. "Create Table" statement
3. "Label On Table" statement (up to 50 characters) - Provides a short
description
4. "Comment On Table" statement (up to 2000 characters) - Allows
detailed comments about the table.
5. "Label On" statement 1 - Established table column headers (up to 60
characters). Headers are displayed in 20 character increments.
6. "Label On" statement 2 (uses "text is" instead of "is") - Allows
detailed comments about the column (up to 2000 characters).
7. "Rename Table xxx To System yyy" - Renames the table to an iSeries
acceptable System name (up to 10 characters).
System Names:
============
SQL on the iSeries supports long names, but many programs and queries
still use the system names which are limited to 10 characters.
When a long name occurs with no defined system name, the name is
truncated to five characters and incremented (within the table).
I.E. "Contractor_Type" = "CONTR00001", "Contractor_Address_1" =
"CONTR00002", etc.
To avoid these cryptic names and still be able to take advantage of
SQLs long name support, be sure to add a system name for any
field name longer than 10 characters. This is done in the "Create
Table" or "Alter Table" statements by adding a "... for XXX ..." clause
to the field description:
EX: contractor_id for contrac_id int not null with default(0)
The SQL name - "contractor_id" and the System Name is "CONTRAC_ID"
(uppercases will be added by the system)
*/
/*======================================================================
PermitDirections
======================================================================
LABEL MASIBP Building Permit directions table.
COMMENT Provides Directions to the physical location of the property.
MODIFICATION HISTORY:
date user comment
-------------- ---------
-------------------------------------------------------------
06-17-2004 JRC Initial Creation
KEY FIELDS:
Primary Key permit_id, seq_no
Foreign Keys permit_id - permit_id from MASIBP.PermitMaster
ADDITIONAL NOTES:
*/
create table masibp.PermitDirections
( permit_id int not null ,
seq_no int not null ,
directions char(50) not null ,
last_change_user for chgUser char(10) not null ,
last_change_timestamp for chgStamp timestamp not null with default ,
Primary Key( permit_id, seq_no )
);
/* Descriptive Table Text */
label on table masibp.PermitDirections
Is 'MASIBP Building Permit directions.'
;
comment on table masibp.PermitDirections
Is 'Provides Directions to the physical location of the property.'
;
/* Table Column Headers */
label on masibp.PermitDirections
( permit_id is 'Permit ID' ,
seq_no is 'Sequence Number' ,
directions is 'Directions' ,
last_change_user is 'Last Changed User ID' ,
last_change_timestamp is 'Last Changed Timestamp'
);
/* Descriptive Column Text */
label on masibp.PermitDirections
( permit_id text is 'Permit ID' ,
seq_no text is 'Sequence Number' ,
directions text is 'Directions' ,
last_change_user text is 'Last Changed User ID' ,
last_change_timestamp text is 'Last Changed Timestamp'
);
/* Set the System Name for the Table */
rename table masibp.PermitDirections
To System Name PermDirect
;
</CODE>
HTH,
Joel Cochran
http://www.rpgnext.com
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.