現在、MySQLデータベース用に設計されたプログラムをMS-SQLデータベースに転送しようとしていますが、問題が発生しました。MySQLには、MS-SQLのようにデフォルトで大文字と小文字が区別されないことがわかりました。これにより、以下にリストされているようなコードでいくつかの問題が発生しました。
class Employee(Base):
__tablename__ = "Employees"
Id = Column(Integer(unsigned=True),
primary_key=True, nullable=False, unique=True)
DisplayName = Column(String(64),
nullable=False)
#more columns
def get_employees(sql_session, param, columns=None, partial_match=True):
if not columns:
columns = [Employee.Id, Employee.DisplayName]
clauses = []
if partial_match:
clauses.append(Employee.DisplayName.startswith(param))
whereclause = and_(*clauses)
stmt = select(columns, whereclause)
return sql_session.execute(stmt)
SQLキーワードCOLLATEは知っていますが、それを実装する方法がわかりません。また、この状況で使用するのに最適なオプションであるかどうかもわかりません。SQLAlchemyを使用して大文字と小文字を区別しないLIKEクエリを作成するために、どのような推奨事項を提供しますか?
- Python 2.7.7
- SQLAlchemy 0.7.7