Salesforce使用truncate清空資料庫

2021-07-26 12:18:38 字數 1046 閱讀 4555

如果想快速的清空mysql中的表,可以使用truncate命令。

truncate能夠快速的,對資料進行無差別的清空。

在mysql中使用truncate的語法是

truncate table [table name];

在salesforce中同樣提供了truncate功能。不過只是提供乙個按鈕,並不提供任何**及api呼叫truncate的方式。

所以正確的應用場景,應該只是用來快速的清空臨時資料或者測試資料。畢竟,無論使用batch還是dataloader來刪除全部資料都要花費大量的時間。

在salesforce中想要看到truncate按鈕的話,需要達成如下條件,參考官方文件:

user inte***ce -> setup -> enable custom object truncate -> true

然後在到custom object的詳細畫面,就能看到在edit,delete按鈕旁邊truncate按鈕出現了。

不過,並不是任何object任何情況都能進行truncate,有如下要求,參考官方文件:

不能被別的object lookup,或者處在master-detail中的master地位。

不能被report snapshot參照。

不能有自定義欄位是index或者是external id。

不能開啟了skinny table。(關於skinny table的事情會另外寫一篇)。

為什麼會有如上的限制,顯而易見,與salesforce中truncate的動作有關。

在salesforce中,雖然truncate功能與mysql類似,用來清空表中的資料,但是會導致custom object的id prefix產生變化。所以所有通過三位id prefix引用此custom object的功能都會失效。如果apex/vf/button中有直接使用3位id prefix進行判斷的邏輯,就會受到影響。

除此之外,另一點與mysql不用的是,如果有乙個自增字段。mysql在truncate後,會重置自增字段的計數器。而salesforce則不會。沒錯,雖然id變了,但自增字段會接著數並不會重新回到起始值。

Salesforce許可權管理

sf裡面的許可權管控都是通過profile來決定的。user account裡面分配自定義的profile.如下圖 而這個profile裡面具體有哪些許可權,sf做的非常的細緻,細到每乙個object的每乙個field.我們要找的這個是在object setting裡面。在這裡可以對具體哪個字段進行...

乙太網的Access,Hybrid和Trunk埠

乙太網埠的三種鏈路型別 access,hybrid和trunk access 型別的埠只能屬於1個vlan,一般用於連線計算機的埠 trunk 型別的埠可以允許多個vlan通過,可以接收和傳送多個vlan的報文,一般用於交換機之間連線的埠 hybrid 型別的埠可以允許多個vlan通過,可以接收和傳...

Salesforce多租戶架構

多租戶架構 multitenancy 已成為軟體行業的乙個口號。你只要詢問某家公司它對這個主題有什麼看法,就能判斷該公司從事什麼業務。對於靠該架構起家的公司 salesforce。com和谷歌 而言,多租戶架構必不可少。對於傳統的老牌開發商 微軟 sap和甲骨文 而言,多租戶架構分別被認為是一種威脅...