小编ano*_*rmh的帖子

在 SQL Server 中的表上生成唯一的基于时间的 id

我正在尝试根据数据库服务器的时钟生成唯一的 ID/时间戳。这不是表的主 ID,但我感兴趣的是该值对于每一行都是唯一的。该代码位于一个存储过程中,该存储过程将由同时运行的各个进程同时执行。

我已经想出了这段代码,但找不到让它更优雅的方法。据我测试,确保其他进程不会在其他线程上生成相同值的唯一方法是在检查是否存在时锁定表。

DECLARE @CurrentRRN varchar(30)
SET @CurrentRRN = FORMAT(SYSDATETIME(), 'yyyyMMddHHmmssffffff')

IF(EXISTS(SELECT RRN FROM dbo.Numbering WITH (xlock, tablockx, holdlock) 
  WHERE RRN = @CurrentRRN)) BEGIN

  WHILE( EXISTS(SELECT RRN FROM dbo.Numbering WHERE RRN = @CurrentRRN) )
    BEGIN
        SET @CurrentRRN = FORMAT(SYSDATETIME(), 'yyyyMMddHHmmssffffff')
    END

END

INSERT INTO dbo.Numbering
(RRN)
Values
(@CurrentRRN)

print @CurrentRRN
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

0
推荐指数
1
解决办法
7882
查看次数

验证子域的格式

如何正确验证子域格式?

这是我所拥有的:

  validates :subdomain, uniqueness: true, case_sensitive: false
  validates :subdomain, format: { with: /\A[A-Za-z0-9-]+\z/, message: "not a valid subdomain" }
  validates :subdomain, exclusion: { in: %w(support blog billing help api www host admin en ru pl ua us), message: "%{value} is reserved." }
  validates :subdomain, length: { maximum: 20 }
  before_validation :downcase_subdomain
  protected
    def downcase_subdomain
      self.subdomain.downcase! if attribute_present?("subdomain")
    end  
Run Code Online (Sandbox Code Playgroud)

题:

是否有像电子邮件一样的标准 REGEX 子域验证?子域使用的最佳正则表达式是什么?

validates :email, format: { with: URI::MailTo::EMAIL_REGEXP }, allow_blank: true

ruby regex subdomain ruby-on-rails

0
推荐指数
1
解决办法
816
查看次数

我可以在 Ruby case 语句中使用两个变量之间的比较吗?

我正在尝试这段代码,但每次都得到 nil (这是 Black Jack 游戏的简单版本):是因为我在 case 语句中比较两个变量吗?

def end_game_message(player_score, bank_score)
  message = ""
  case player_score
  when player_score == 21
    message = "Black Jack!"
  when player_score > bank_score
    message = "You win!"
  when player_score > 21
    message = "You lose!"
  when player_score < bank_score
    message = "You lose"
  when player_score == bank_score
    message = "Push"
  end
  message
end

puts end_game_message(21, 15)
Run Code Online (Sandbox Code Playgroud)

预先感谢您的任何帮助!

ruby

0
推荐指数
1
解决办法
767
查看次数

Ruby 字符串 end_with?大批

我正在寻找一种方法来限定文件名是否以数组内的后缀结尾。

\n\n
filetypes = %w(.flac .wv)\nDir.open(Dir.pwd).each do |filename|\n  q = "." + filename.split(\'.\').last.to_s\n  pp filename if filetypes.include?(q)\nend\n
Run Code Online (Sandbox Code Playgroud)\n\n

我认为必须有某种内置迭代器来遍历限定符数组。我在这里错过了什么吗?

\n\n
filetypes = %w(.flac .wv)\nDir.open(Dir.pwd).each do |filename|\n  pp filename if filename.end_with?(filetypes)\nend\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是行不通的。文档是这样说的:

\n\n

end_with?([suffixes]+) \xe2\x86\x92 true or false

\n\n

所以它表明可以遍历数组,但它对我不起作用。我怎样才能将数组传递给end_with?

\n

ruby arrays string

-1
推荐指数
1
解决办法
2199
查看次数

标签 统计

ruby ×3

arrays ×1

regex ×1

ruby-on-rails ×1

sql ×1

sql-server ×1

string ×1

subdomain ×1

t-sql ×1