SQLite如何修改字段類型
SQLite不支持直接修改字段類型,如需要修改字段類型,可按以下方法處理:
1、將要修改的字段名改名
2、用新的類型添加字段
3、復(fù)制原字段的內(nèi)容
4、刪除舊字段
procedure SQLiteAlter(TableName,ColName,NewFileType:string); var sql:string; begin sql:='ALTER TABLE '+TableName+' RENAME COLUMN '+chr(39)+ColName+chr(39)+' TO '+chr(39)+ColName+'_old'+chr(39); UniSQL1.SQL.Text:=sql; UniSQL1.Execute; sql:='ALTER TABLE '+TableName+' ADD COLUMN '+ColName+' '+ NewFileType; UniSQL1.SQL.Text:=sql; UniSQL1.Execute; sql:='UPDATE '+TableName+' SET '+ColName+' = CAST('+ColName+'_old AS '+NewFileType+')'; UniSQL1.SQL.Text:=sql; UniSQL1.Execute; sql:='ALTER TABLE '+TableName+' DROP COLUMN '+ColName+'_old'; UniSQL1.SQL.Text:=sql; UniSQL1.Execute; end; //Demo: SQLiteAlter('blog_Content','TestFieldName','nvarchar(50)');
補(bǔ)充:sqlite sql 修改字段類型
sqlite數(shù)據(jù)庫(kù)中數(shù)據(jù)類型存在sqlite_master表中
select sql from sqlite_master where tb_name='tbname'
把這條sql語(yǔ)句改了,表結(jié)構(gòu)就改了。
sqlite的alter table限制很多,所以一般直接把原表改名。
復(fù)制一個(gè)表名與原表一樣的,再把改名后的那個(gè)原表刪了,以下sql語(yǔ)句可以用。
新表改完字段類型如果不兼容原表,新表中的該字段數(shù)據(jù)讀不出。
所以要改類型可以不用聲明字段類型
alter table zb RENAME TO tempxxx_1; create table zb(rkdh char(15) ,gbdh char(15) ,cph nchar(9) ); INSERT INTO zb(rkdh,gbdh,cph,) select rkdh,gbdh,cph FROM tempxxx_1; drop table tempXXX_1
到此這篇關(guān)于SQLite修改字段類型的方法的文章就介紹到這了,更多相關(guān)SQLite修改字段類型的方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SQL Server配置管理器無(wú)法連接到WMI提供程序
這篇文章主要介紹了SQL Server配置管理器無(wú)法連接到WMI提供程序,提示您沒(méi)有權(quán)限或者該服務(wù)器無(wú)法訪問(wèn),如何解決?2016-11-11SQL Server評(píng)估期已過(guò)問(wèn)題的解決方法
這篇文章主要為大家詳細(xì)介紹了SQL Server評(píng)估期已過(guò)問(wèn)題的解決方法,感興趣的小伙伴們可以參考一下2016-03-03sqlServer使用ROW_NUMBER時(shí)不排序的解決方法
ROW_NUMBER必須指寫(xiě)over (order by **),有時(shí)我根本就不想排序,想按原始順序,那么就可以參考下面的方法2013-06-06SQL刪除語(yǔ)句DROP、TRUNCATE、 DELETE 的區(qū)別
這篇文章主要介紹了SQL刪除語(yǔ)句DROP、TRUNCATE、 DELETE 的區(qū)別,幫助大家更好的理解和學(xué)習(xí)sql語(yǔ)句,感興趣的朋友可以了解下2020-09-09升級(jí)SQL Server 2014的四個(gè)要點(diǎn)要注意
升級(jí)一個(gè)關(guān)鍵業(yè)務(wù)SQL Server實(shí)例并不容易,它要求有周全的計(jì)劃。計(jì)劃不全會(huì)增加遇到升級(jí)問(wèn)題的可能性,從而影響或延遲SQL Server 2014的升級(jí)。在規(guī)劃SQLServer 2014升級(jí)時(shí),有一些注意事項(xiàng)有助于避免遇到升級(jí)問(wèn)題,需要的朋友可以參考下2015-08-08存儲(chǔ)過(guò)程優(yōu)缺點(diǎn)分析
在程序開(kāi)發(fā)中我們經(jīng)常性的存儲(chǔ)過(guò)程,可以提升執(zhí)行效率等,但也也會(huì)有一些缺點(diǎn)大家可以根據(jù)需要選用2012-04-04用非動(dòng)態(tài)SQL Server SQL語(yǔ)句來(lái)對(duì)動(dòng)態(tài)查詢進(jìn)行執(zhí)行
此文章主要向大家講述的是非動(dòng)態(tài)SQL ServerSQL語(yǔ)句執(zhí)行動(dòng)態(tài)查詢,在實(shí)際操作中我嘗試在一個(gè)存儲(chǔ)過(guò)程中,來(lái)進(jìn)行傳遞一系列以逗號(hào)劃定界限的值,來(lái)對(duì)結(jié)果集進(jìn)行限制。但是無(wú)論什么時(shí)候,我在IN子句中使用變量,都會(huì)得到錯(cuò)誤信息2017-06-06sql中的regexp與like區(qū)別實(shí)現(xiàn)
本文詳細(xì)介紹了正則表達(dá)式REGEXP和LIKE語(yǔ)句的用途,使用它們進(jìn)行模式匹配,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-09-09SQL Server把某個(gè)字段的數(shù)據(jù)用一條語(yǔ)句轉(zhuǎn)換成字符串
這篇文章主要介紹了SQL Server把某個(gè)字段的數(shù)據(jù)用一條語(yǔ)句轉(zhuǎn)換成字符串,本文講解使用一條語(yǔ)句把字段中的數(shù)據(jù)查詢出來(lái)并以指定分割符組成字符串,需要的朋友可以參考下2015-07-07