我在oracle XE中创建了一个表,我有一个类型为date的字段。如果可能的话,我想插入一行,它会自动用系统中的当前日期填充该字段。
我从SQL提示符插入行。
由于
答案 0 :(得分:27)
以下是您需要正确格式化表格的方法:
create table test (first number
, second timestamp default systimestamp
, third varchar2(12));
您的默认值始终是格式化为时间戳的当前系统时间。
答案 1 :(得分:4)
创建表格后更改字段
ALTER TABLE table MODIFY time_collumn TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
答案 2 :(得分:1)
或者您也可以使用触发器:
CREATE OR REPLACE TRIGGER date_trigger
BEFORE INSERT
ON table_name
REFERENCING NEW AS NEW
FOR EACH ROW
BEGIN
SELECT sysdate INTO :NEW.column_name FROM dual;
END;
答案 3 :(得分:0)
如果我们在创建表时忘记添加约束,则以下代码片段可能会有所帮助:
Map<Character, String> mapping = new HashMap<>();
mapping.put('a', "one");
mapping.put('e', "two");
mapping.put('i', "three");
mapping.put('o', "four");
mapping.put('u', "five");
String res = "Hello How are u!".chars()
.mapToObj(ch -> mapping.getOrDefault((char) ch,
Character.toString((char) ch)))
.collect(Collectors.joining());
System.out.println(res);