PostgreSQLでNOT NULL制約を変更する
PostgreSQLでNOT NULL 制約を後から変更する方法について調べてみました。
NOT NULL 制約を追加する
NOT NULL 制約を後からつける場合は以下のようにします
ALTER TABLE テーブル名 ALTER COLUMN カラム名 SET NOT NULL;
追加する前に、NULLのデータがあるとエラーになり変更できません。
NOT NULL 制約を削除する
NOT NULL 制約を後から削除する場合は、以下のようにします
ALTER TABLE テーブル名 ALTER COLUMN カラム名 DROP NOT NULL;
参考
KotlinでChar型からInt型にする
やり方
一度文字列に変換した後に、toInt
を使用するとできます
val char = '1' char.toString().toInt()
つまづきポイント
Char
型のtoInt
メソッドはASCIIコードを返却するので、一度文字列に変換しないとハマります。
val char = '1' char.toInt() // 49 char.toString().toInt() // 1
参考
JavaScriptで月の長さを指定する
Dateオブジェクトの日付を 0 にすると、前の月の最終日になることを利用します。
let date = new Date() let year = date.getFullYear() let month = date.getMonth() let month_days = new Date(year, month + 1, 0).getDate() console.log(month_days)
注意点
以下のようなコードでやると失敗します。
let date = new Date(2019, 8, 31) date.setMonth(date.getMonth() + 1) // 翌月にする date.setDate(0) // 0日にする let month_days = date.getDate() console.log(month_days) // 30
8月は31日ありますが、30が出力されてしまいます。 上のコードでは、Dateオブジェクトの指す日付は以下のように変化します。
- 8/31
- 9/31 -> (10/1) ※9月は30日までなので翌日の10/1となる
- 10/0 -> (9/30)
よって、8月の最終日を出力をするつもりが、9月の最終日が出力されてします。
参考
pythonでタプルの指定の要素でソートする
タプルの指定の要素でソートする場合は、sortメソッド・sorted関数のkeyを指定します。 ラムダ式とitemgetterで指定する2つの方法があるのでそれぞれ紹介します。
ラムダ式
list = [(1, 'c'), (2, 'b'), (3, 'a')] list.sort(key=lambda tup: tup[1]) # [(3, 'a'), (2, 'b'), (1, 'c')]
sorted関数は以下のようになります
sorted(list, key=lambda tup: tup[1])
itemgetter
from operator import itemgetter list = [(1, 'c'), (2, 'b'), (3, 'a')] list.sort(key=itemgetter(1)) # [(3, 'a'), (2, 'b'), (1, 'c')]
sorted関数は以下のようになります
sorted(list, key=itemgetter(1))
最後に
itemgetterを使用したほうが短く書くことができますね
Pythonにおけるモジュールとファイル名の関係
Android Studioでクラスを追加する
Android Studioでクラスを追加するには、File、Newから、Java Classを選択し、
出てきたダイアログに項目を入力後、OKを押して完了。
項目名 | 記入内容 |
---|---|
Name | クラス名 |
Superclass | スーパークラス名 |
Interface(s) | 実装するインターフェース名 |
Package | パッケージ名 |
Visibility | アクセス修飾子 |
Modifiers | その他修飾子 |