亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有辦法按順序對 sqlite PRAGMA foreign_key_list()

有沒有辦法按順序對 sqlite PRAGMA foreign_key_list()

C#
慕碼人2483693 2022-07-10 16:34:17
如果 sqlite 表的行數超過設定的限制大小,我想以編程方式向它添加索引。我想將索引添加到所有具有外鍵的列中,為了獲得這些,我使用PRAGMA foreign_key_list(myTable)我使用該from列從我的表中獲取具有外鍵的列。由于具有多列的索引的順序很重要,我想按照它們在表中出現的順序對它們進行排序。有沒有辦法在這個PRAGMA查詢中找到訂單(以及如何),還是我必須進行另一個查詢(PRAGMA table_info(myTable))并以編程方式找到訂單?編輯:使用 .db3 文件。
查看完整描述

1 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

通過進行有限的測試,如果外鍵是在列級別定義的,那么id列對于之前定義的外鍵來說是一個更高的值。


您可以使用在 SELECT 語句中返回結果的編譯指示,例如并根據其中一列進行排序(如果使用了合適的列命名約定,則使用了 id,您可以根據from列進行排序(注意它需要被括起來) ))


SELECT * FROM pragma_foreign_key_list('mytable') ORDER BY id ASC;

例如考慮以下內容:-


DROP TABLE IF EXISTS mytable;



CREATE TABLE IF NOT EXISTS mytable (id INTEGER PRIMARY KEY,

  _otherd_building_id_reference INTEGER REFERENCES _building(_id),

    _building_id_reference INTEGER REFERENCES _building(_id),

    _room_id_reference INTEGER REFERENCES _room(_id),

    _campus_id_reference INTEGER REFERENCES _campus(_id),

    _othera_campus_reference INTEGER REFERENCES _campus(_id),

    _otherz_room_id_reference INTEGER REFERENCES _room(_id),

    _otherc_building_id_reference INTEGER REFERENCES _building(_id)

    );



SELECT * FROM pragma_foreign_key_list('mytable') ORDER BY id DESC;

請注意,最初的列沒有像* other? 這樣的前綴?被添加,othera,c 和 z 被添加到最后,最后 _otherd_building_id_reference 被添加。

結果,在運行上述內容時始終如一: -

http://img1.sycdn.imooc.com//62ca8f290001538107320209.jpg

查看完整回答
反對 回復 2022-07-10
  • 1 回答
  • 0 關注
  • 134 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號