我发现了一段代码如下:
[root@SHB-L0035222 bin]# mysql -u dubbom -D dubbomonitor -p -t </tmp/create.sql
Enter password:
ERROR 1064 (42000) at line 3: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING BTREE,
KEY `index_method` (`method`) USING BTREE,
KEY `index_invoke_da' at line 17
[root@SHB-L0035222 bin]# cat /tmp/create.sql
use dubbomonitor;
DROP TABLE IF EXISTS `dubbo_invoke`;
CREATE TABLE `dubbo_invoke` (
`id` varchar(255) NOT NULL DEFAULT '',
`invoke_date` date NOT NULL,
`service` varchar(255) DEFAULT NULL,
`method` varchar(255) DEFAULT NULL,
`consumer` varchar(255) DEFAULT NULL,
`provider` varchar(255) DEFAULT NULL,
`type` varchar(255) DEFAULT '',
`invoke_time` bigint(20) DEFAULT NULL,
`success` int(11) DEFAULT NULL,
`failure` int(11) DEFAULT NULL,
`elapsed` int(11) DEFAULT NULL,
`concurrent` int(11) DEFAULT NULL,
`max_elapsed` int(11) DEFAULT NULL,
`max_concurrent` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `index_service` (`service`) USING BTREE,
KEY `index_method` (`method`) USING BTREE,
KEY `index_invoke_date` (`invoke_date`) USING BTREE,
KEY `index_invoke_time` (`invoke_time`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
这样安全吗?这好吗?
答案 0 :(得分:0)
表达式p ?? OtherClass()
相当于:
p != nil ? p! : OtherClass()
所以行p = p ?? OtherClass()
几乎与:
if p == nil {
p = OtherClass()
}
所以,这是安全的。在保证行p
具有非零值之后。
可能有更好的方法,所以我不能说它很好。但它还不错。