CREATE TABLE
Инструкция CREATE TABLE поддерживается с следующими ограничениями:
- Не поддерживаются определения столбцов, основанные на доменах.
- Из ограничений для Paradox поддерживается только PRIMARY KEY. dBase не поддерживает ограничения вообще.
Например, следующая инструкция создает таблицу Paradox с ограничением PRIMARY KEY на столбцы LAST_NAME и FIRST_NAME:
CREATE TABLE "employee.db"( LAST_NAME CHAR(20), FIRST_NAME CHAR(15), SALARY NUMERIC(10,2), DEPT_NO SMALLINT, PRIMARY KEY(LAST_NAME, FIRST_NAME) )
В таком же предложении для dBase определение PRIMARY KEY должно быть опущено:
CREATE TABLE "employee.dbf"( LAST_NAME CHAR(20), FIRST_NAME CHAR(15), SALARY NUMERIC(10,2), DEPT_NO SMALLINT )
Создание таблиц Paradox и dBase
Выбор между созданием таблицы Paradox или таблицы dBase осуществляется посредством расширения файла в имени таблицы:
- ".DB" для таблицы Paradox
- ".DBF" для таблицы dBASE
Если расширение не указать, то создается таблица типа, указанного в настройке "Default Driver" в настройках BDE в разделе "System".
Соответствие типов данных для CREATE TABLE
В следующей таблице указано, каким типам Paradox и dBase соответствуют разные типы SQL:
тип SQL | тип BDE | Paradox | dBASE |
---|---|---|---|
SMALLINT | fldINT16 | Short | Number (6,10) |
INTEGER | fldINT32 | Long Integer | Number (20,4) |
DECIMAL(x,y) | fldBCD | BCD | (нет) |
NUMERIC(x,y) | fldFLOAT | Number | Number (x,y) |
FLOAT(x,y) | fldFLOAT | Number | Float (x,y) |
CHARACTER(n) | fldZSTRING | Alpha | Character |
VARCHAR(n) | fldZSTRING | Alpha | Character |
DATE | fldDATE | Date | Date |
BOOLEAN | fldBOOL | Logical | Logical |
BLOB(n,1) | fldstMEMO | Memo | Memo |
BLOB(n,2) | fldstBINARY | Binary | Binary |
BLOB(n,3) | fldstFMTMEMO | Formatted memo | (нет) |
BLOB(n,4) | fldstOLEOBJ | OLE | OLE |
BLOB(n,5) | fldstGRAPHIC | Graphic | (нет) |
TIME | fldTIME | Time | (нет) |
TIMESTAMP | fldTIMESTAMP | Timestamp | (нет) |
MONEY | fldFLOAT, fldstMONEY | Money | Number (20,4) |
AUTOINC | fldINT32, fldstAUTOINC | Autoincrement | (нет) |
BYTES(n) | fldBYTES(n) | Bytes | (нет) |
- x = точность (по умолчанию: зависит от драйвера)
- y = масштаб (по умолчанию 0)
- n = длина в байтах (по умолчанию 0)
- 1-5 = подтип BLOB (по умолчанию 1)