DEFAULT
In MySQL, when using ALTER TABLE to add a column with the not null constraint, if no value is specified, a default value is inserted. However, an error will be reported a value is inserted into a non-empty table in GaussDB(DWS). Therefore, for common data types, Default values (see table 1.) are specified for ALTER TABLE ADD COLUMN with NOT NULL constraint.
Input
       1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16  | 
      
       DROP TABLE IF EXISTS default_test_1; CREATE TABLE default_test_1 ( c1 tinyint, c2 smallint, c3 MEDIUMINT, c4 int, c5 bigint ); INSERT INTO default_test_1 VALUES (1, 1, 1, 1, 1); SELECT * FROM default_test_1; ALTER TABLE default_test_1 add COLUMN (c1_1 tinyint not null, c2_1 SMALLINT not null, c3_1 MEDIUMINT not null, c4_1 int not null, c5_1 BIGINT not null); SELECT * FROM default_test_1;  | 
     
Output
       1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32  | 
      
       DROP TABLE IF EXISTS "public"."default_test_1"; CREATE TABLE "public"."default_test_1" ( "c1" SMALLINT, "c2" SMALLINT, "c3" INTEGER, "c4" INTEGER, "c5" BIGINT ) WITH (ORIENTATION = ROW, COMPRESSION = NO) NOCOMPRESS DISTRIBUTE BY HASH ("c1"); INSERT INTO "public"."default_test_1" VALUES (1, 1, 1, 1, 1); SELECT * FROM default_test_1; ALTER TABLE "public"."default_test_1" ADD COLUMN "c1_1" SMALLINT NOT NULL DEFAULT 0, ADD COLUMN "c2_1" SMALLINT NOT NULL DEFAULT 0, ADD COLUMN "c3_1" INTEGER NOT NULL DEFAULT 0, ADD COLUMN "c4_1" INTEGER NOT NULL DEFAULT 0, ADD COLUMN "c5_1" BIGINT NOT NULL DEFAULT 0; SELECT * FROM default_test_1;  | 
     
| 
       Data Type  | 
     
       MYSQL  | 
     
       GaussDB(DWS) Data Type  | 
     
       Conversion Result  | 
    
|---|---|---|---|
| 
       Signed Integer  | 
     
       TINYINT  | 
     
       SMALLINT  | 
     
       0  | 
    
| 
       SMALLINT  | 
     
       SMALLINT  | 
     
       0  | 
    |
| 
       MEDIUMINT  | 
     
       INT/INTEGER  | 
     
       0  | 
    |
| 
       INT/INTEGER  | 
     
       INT/INTEGER  | 
     
       0  | 
    |
| 
       BIGINT  | 
     
       BIGINT  | 
     
       0  | 
    |
| 
       Unsigned Integer  | 
     
       TINYINT UNSIGNED  | 
     
       TINYINT  | 
     
       0  | 
    
| 
       SMALLINT UNSIGNED  | 
     
       INT  | 
     
       0  | 
    |
| 
       MEDIUMINT UNSIGNED  | 
     
       INT  | 
     
       0  | 
    |
| 
       INT UNSIGNED  | 
     
       BIGINT  | 
     
       0  | 
    |
| 
       BIGINT UNSIGNED  | 
     
       NUMERIC  | 
     
       0  | 
    |
| 
       Float  | 
     
       FLOAT  | 
     
       REAL  | 
     
       0  | 
    
| 
       FLOAT UNSIGNED  | 
     
       REAL  | 
     
       0  | 
    |
| 
       DOUBLE  | 
     
       DOUBLE PRECISION  | 
     
       0  | 
    |
| 
       DOUBLE UNSIGNED  | 
     
       DOUBLE PRECISION  | 
     
       0  | 
    |
| 
       DOUBLE PRECISION (DOUBLE)  | 
     
       DOUBLE PRECISION  | 
     
       0  | 
    |
| 
       DOUBLE PRECISION [UNSIGNED] (DOUBLE)  | 
     
       DOUBLE PRECISION  | 
     
       0  | 
    |
| 
       REAL (Processed as double by default, when set to REAL_AS_FLOAT, it is processed as float.)  | 
     
       REAL/DOUBLE PRECISION  | 
     
       0  | 
    |
| 
       REAL [UNSIGNED] (Processed as double by default, when set to REAL_AS_FLOAT, it is processed as float.)  | 
     
       REAL/DOUBLE PRECISION  | 
     
       0  | 
    |
| 
       NUMERIC/DECIMAL  | 
     
       NUMERIC/DECIMAL  | 
     
       0  | 
    |
| 
       Boolean  | 
     
       BOOLEAN/BOOL  | 
     
       BOOLEAN  | 
     
       0  | 
    
| 
       Character Type  | 
     
       CHAR/CHARACTER  | 
     
       CHAR/CHARACTER * 4  | 
     
       An empty string will be returned.  | 
    
| 
       NCHAR  | 
     
       CHAR/CHARACTER * 4  | 
     
       An empty string will be returned.  | 
    |
| 
       VARCHAR  | 
     
       VARCHAR * 4  | 
     
       An empty string will be returned.  | 
    |
| 
       Text  | 
     
       TINYTEXT  | 
     
       TEXT  | 
     
       An empty string will be returned.  | 
    
| 
       TEXT  | 
     
       TEXT  | 
     
       An empty string will be returned.  | 
    |
| 
       MEDIUMTEXT  | 
     
       TEXT  | 
     
       An empty string will be returned.  | 
    |
| 
       LONGTEXT  | 
     
       TEXT  | 
     
       An empty string will be returned.  | 
    |
| 
       Binary  | 
     
       BINARY  | 
     
       BYTEA  | 
     
       An empty string will be returned.  | 
    
| 
       VARBINARY  | 
     
       BYTEA  | 
     
       An empty string will be returned.  | 
    |
| 
       TINYBLOB  | 
     
       BYTEA (column storage)/BLOB (non-column storage)  | 
     
       An empty string will be returned.  | 
    |
| 
       BLOB  | 
     
       BYTEA (column storage)/BLOB (non-column storage)  | 
     
       An empty string will be returned.  | 
    |
| 
       MEDIUMBLOB  | 
     
       BYTEA (column storage)/BLOB (non-column storage)  | 
     
       An empty string will be returned.  | 
    |
| 
       LONGBLOB  | 
     
       BYTEA (column storage)/BLOB (non-column storage)  | 
     
       An empty string will be returned.  | 
    |
| 
       CHAR BYTE (BINARY)  | 
     
       BYTEA  | 
     
       An empty string will be returned.  | 
    |
| 
       Date  | 
     
       DATE  | 
     
       DATE  | 
     
       1970-01-01  | 
    
| 
       TIME  | 
     
       TIME(P) WITHOUT TIME ZONE  | 
     
       00:00:00  | 
    |
| 
       DATETIME  | 
     
       TIMESTAMP WITHOUT TIME ZONE  | 
     
       1970-01-01 00:00:00  | 
    |
| 
       TIMESTAMP  | 
     
       TIMESTAMP(P) WITH TIME ZONE  | 
     
       1970-01-01 00:00:00  | 
    |
| 
       datetime/datetime(0)  | 
     
       datetime->timestamp with out time zone datetime(0)->timestamp(0) with out time zone  | 
     
       1970-01-01 00:00:00.xx (The number of x depends on the precision.)  | 
    |
| 
       YEAR  | 
     
       SMALLINT  | 
     
       0000  | 
    |
| 
       Bit String  | 
     
       BIT  | 
     
       BIT  | 
     
       DEFAULT 0:: BIT(x)  | 
    
| 
       Set  | 
     
       ENUM  | 
     
       CHARACTER VARYING()  | 
     
       Return the first element by default.  | 
    
| 
       SET  | 
     
       CHARACTER VARYING()  | 
     
       An empty string will be returned.  | 
    |
| 
       Auto Increment  | 
     
       SERIAL ( BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE)  | 
     
       CREATE SEQUENCE serial_name INCREMENT 2 START 1  | 
     
       No processing is required.  | 
    
| 
       JSON  | 
     
       JSON  | 
     
       jsonb  | 
     
       No processing is required.  | 
    
| 
       Spatial  | 
     
       point  | 
     
       point  | 
     
       No processing is required.  | 
    
| 
       polygon  | 
     
       polygon  | 
     
       No processing is required.  | 
    |
| 
       geometry  | 
     
       Not supported. The input is returned as it was received  | 
     
       No processing is required.  | 
    |
| 
       linestring  | 
     
       polygon  | 
     
       No processing is required.  | 
    |
| 
       geometrycollection  | 
     
       Not supported. The input is returned as it was received  | 
     
       No processing is required.  | 
    |
| 
       multipoint  | 
     
       box  | 
     
       No processing is required.  | 
    |
| 
       multilinestring  | 
     
       box  | 
     
       No processing is required.  | 
    |
| 
       multipolygon  | 
     
       polygon  | 
     
       No processing is required.  | 
    
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.