欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

clickhouse中Nullable與非空字段的建表與類型互轉(zhuǎn)方式

 更新時(shí)間:2023年12月21日 16:40:55   作者:阿爵  
這篇文章主要介紹了clickhouse中Nullable與非空字段的建表與類型互轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

背景

有些表隨著業(yè)務(wù)發(fā)展會(huì)涉及字段的約束修改 

1、歷史數(shù)據(jù)字段容許為空 ,但現(xiàn)在要求不能為空了;

2、原類型不允許為空,但現(xiàn)在允許可以為空了。

drop table default.tttt
CREATE TABLE default.tttt(
id String,
name String
) ENGINE = MergeTree PARTITION BY id ORDER BY id SETTINGS index_granularity = 8192

嘗試插入數(shù)據(jù) 

insert into `default`.tttt values ('0',null)-- 失敗

DB::Exception: Expression returns value NULL, that is out of range of type String, at: null) 

insert into `default`.tttt values ('1','name1'),('2','name2') --成功
select * from `default`.tttt

id|name |
--|-----|
2 |name2|
1 |name1|

嘗試由Nullable轉(zhuǎn)換成非空類型

alter table `default`.tttt MODIFY COLUMN name Nullable(String) --成功

插入一個(gè)空值,用于后面的測(cè)試: 

insert into `default`.tttt values ('3',null) --成功
select * from `default`.tttt

id|name |
--|-----|
2 |name2|
1 |name1|
3 |     |

再嘗試由Nullable轉(zhuǎn)換成非空類型

alter table `default`.tttt MODIFY COLUMN name String  --失敗,因?yàn)橛涗浿写嬖趎ull值

DB::Exception: Cannot convert NULL value to non-Nullable type (version 19.9.2.4 (official build))

CREATE TABLE default.tttt2(
id Nullable(String),
name Nullable(String)
) ENGINE = MergeTree PARTITION BY id ORDER BY id SETTINGS index_granularity = 8192

創(chuàng)建失敗,允許為空值不能用于排序 DB::Exception: Sorting key cannot contain nullable columns (version 19.9.2.4 (official build))

CREATE TABLE default.tttt2(
id String,
name Nullable(String)
) ENGINE = MergeTree PARTITION BY id ORDER BY id SETTINGS index_granularity = 8192
--成功
--直接用空表轉(zhuǎn)換類型
alter table `default`.tttt2 MODIFY COLUMN name String --成功。

 結(jié)論

1、空表,Nullable與非空類型可以互轉(zhuǎn);

2、Nullable字段,如果記錄不帶有Null值,可以從Nullable轉(zhuǎn)成非空類型;

3、含有null值的字段不允許轉(zhuǎn)成非空類型;

4、Nullable字段不允許用于order by;

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • linux系統(tǒng)中重置mysql的root密碼

    linux系統(tǒng)中重置mysql的root密碼

    我相信平時(shí)大家一定會(huì)遇到忘記密碼的時(shí)候,實(shí)在記不起來(lái)了,我們就會(huì)重置密碼,最快最直接的方法,這篇文章就是主要介紹了linux系統(tǒng)中重置mysql的root密碼的方法,需要的朋友可以參考下
    2015-08-08
  • MySQL 大表添加一列的實(shí)現(xiàn)

    MySQL 大表添加一列的實(shí)現(xiàn)

    這篇文章主要介紹了MySQL 大表添加一列的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • mysql建表常用sql語(yǔ)句個(gè)人經(jīng)驗(yàn)分享

    mysql建表常用sql語(yǔ)句個(gè)人經(jīng)驗(yàn)分享

    熟悉一些常用的建表語(yǔ)句可以提升你建表的速度效率,本文整理了一些,個(gè)人感覺(jué)還不錯(cuò),希望對(duì)大家有所幫助
    2014-01-01
  • MYSQL設(shè)置觸發(fā)器權(quán)限問(wèn)題的解決方法

    MYSQL設(shè)置觸發(fā)器權(quán)限問(wèn)題的解決方法

    這篇文章主要介紹了MYSQL設(shè)置觸發(fā)器權(quán)限問(wèn)題的解決方法,需要的朋友可以參考下
    2014-09-09
  • MySQL 中處理 BLOB 和 CLOB 數(shù)據(jù)類型小結(jié)

    MySQL 中處理 BLOB 和 CLOB 數(shù)據(jù)類型小結(jié)

    在MySQL中,BLOB和CLOB 數(shù)據(jù)類型用于存儲(chǔ)大量的二進(jìn)制數(shù)據(jù)和字符數(shù)據(jù),可以使用SQL 語(yǔ)句或編程語(yǔ)言將二進(jìn)制數(shù)據(jù)和字符數(shù)據(jù)插入到BLOB 和CLOB列中,這篇文章主要介紹了MySQL 中處理 BLOB 和 CLOB 數(shù)據(jù)類型,需要的朋友可以參考下
    2025-03-03
  • MySQL 5.6.14 win32安裝方法(zip版)

    MySQL 5.6.14 win32安裝方法(zip版)

    這篇文章主要介紹了MySQL 5.6.14 win32安裝方法(zip版)的相關(guān)資料,非常不錯(cuò),需要的朋友可以參考下
    2016-08-08
  • Windows下MySQL安裝教程圖文詳解

    Windows下MySQL安裝教程圖文詳解

    本文通過(guò)圖文并茂的形式給大家介紹了windows下mysql 安裝教程,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-10-10
  • MySQL數(shù)據(jù)庫(kù)的一次死鎖實(shí)例分析

    MySQL數(shù)據(jù)庫(kù)的一次死鎖實(shí)例分析

    本文主要給大家通過(guò)一個(gè)實(shí)例來(lái)具體介紹MySQL死鎖問(wèn)題的相關(guān)知識(shí),接下來(lái)我們就來(lái)一一介紹這部分內(nèi)容,希望能夠?qū)δ兴鶐椭?/div> 2016-11-11
  • mysql8.0使用PXC實(shí)現(xiàn)高可用的示例(Rocky8.0環(huán)境)

    mysql8.0使用PXC實(shí)現(xiàn)高可用的示例(Rocky8.0環(huán)境)

    本文主要介紹了在Rocky8.0環(huán)境下搭建MySQL8.0的Percona XtraDB Cluster(PXC)集群,,可以實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)同步、讀寫分離和高可用性,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-02-02
  • MySQL修改root密碼的4種方法(小結(jié))

    MySQL修改root密碼的4種方法(小結(jié))

    這篇文章主要介紹了MySQL修改root密碼的4種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09

最新評(píng)論