Jak zmienić domyślną wartość istniejącej kolumny w tabeli w sqlite3?sqlite3 zmiana domyślnej wartości kolumny
Mam tabelę o nazwie notes
z kolumną boolowską o nazwie hidden
. Wartością domyślną jest true, chcę ustawić ją na false.
Jak zmienić domyślną wartość istniejącej kolumny w tabeli w sqlite3?sqlite3 zmiana domyślnej wartości kolumny
Mam tabelę o nazwie notes
z kolumną boolowską o nazwie hidden
. Wartością domyślną jest true, chcę ustawić ją na false.
Nie sądzę, że można bez zastępowania całego stołu. Z fine manual:
SQL, SQLite nie implementuje
pełne wsparcie ALTER TABLE
Tylko tabeli warianty RENAME i ADD COLUMN polecenia ALTER TABLE są obsługiwane. Inne rodzaje operacji ALTER TABLE, takich jak DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT i tak dalej, są pomijane.
Tak więc nie ma możliwości zmodyfikowania istniejącej kolumny w SQLite. Myślę, że będziesz musiał utworzyć nową tabelę z odpowiednią wartością domyślną dla hidden
, skopiuj wszystkie dane, upuść oryginalny tabelę notes
, a następnie rename the new one.
SQLite pozostaje szczupły, celowo pomijając wiele funkcji.
Przeglądarka baz danych SQLite umożliwia usuwanie kolumn, dzięki czemu można z niej upuścić kolumnę, a następnie ręcznie dodać kolumnę z wartością domyślną za pomocą narzędzia wiersza poleceń sqlite3.
Niestety, aby to osiągnąć, prawdopodobnie wykonuje wszystkie rodzaje podstępów pod maską, jak tworzenie tabeli tymczasowej: | http://stackoverflow.com/q/805363/32453 – rogerdpack
Jedna kwestia może pomóc w tym zakresie. Przed uruchomieniem 'drop table' upewnij się, że uruchomisz '.dump' i otrzymasz zrzut schematu oraz dane. Następnie można go użyć do szybkiego utworzenia zmodyfikowanego schematu i przetworzenia danych. –
codarrior